13199. Anonymous (c-69-245-52-20.hsd1.tn.comcast.net) –
02 Mar 2016 23:11:22
[ Winter Vacation 2016 ]
Well, he was performing a feat (running across an entire country) where the photo was taken, so in a sense the caption is quite correct. |
|
"These could be anywhere beneath your feat"
I think I found a grammatical error (and not of the "forgetting which language is which" kind...) |
|
13197. milsyobtaf (c-66-31-16-157.hsd1.ma.comcast.net) –
01 Mar 2016 09:10:50
[ Winter Vacation 2016 ]
Went to high school with a handful of Curaçaoans. Totally a country, so congrats! And Papiamentu is one of the craziest and most melodic languages ever, although I've never actually seen it written down. |
|
|
|
13195. Nels (c-174-63-47-203.hsd1.ma.comcast.net) –
27 Feb 2016 17:30:29
[ ARST ARSW ]
It's especially funny to see the fake "argument" above with the hostname right next to it. |
|
I have several questions…
Considering the long times you’ve seen playfun pausing, including your megaman pausing (you said in your video that it was like 9-10 hours of pausing). Is there some sort of limit to playfun’s learning?
I’ve shown it several castlevania plays, constantly showing it how to go from the start to stage 4. Several runs of playfun have resulted in it at least making it to stage 2 but my most recent few runs of playfun have not resulted in it going up the stairs to stage 2. I know it knows how to reach stage 2, its gone there on its own, I know that, so why isn’t it using it even though it knows it causes the stage value to increase?
How do you know or discern the locations of the values of the in game stuff (where you manually set some of its objectives)? Do you have to read it with a special program or just hex editing? As an example, what numbers would I have to use to tell it to prioritize points, health, lives, and levels in castlevania? I can’t see where those values are.
Is there a way to tell playfun to modify some of the game like a game genie while running? I’d think of this because if playfun does better on its last life, then just alter your lives such that you only have 1 so it has no choice but to do things correctly the first time. Or would one have to mod the rom itself to produce that result?
Is there a way to tell playfun to try to produce the best results within an objective time frame or to consider itself at least restrained or judged based upon objective time? Perhaps objective time as an actual “objective”? Like, say, 5 minutes? When I say “objective time” I mean such that it tries to do the best it can within 5 actual minutes, not game minutes (this would result in “pausing” being bad since it would only stop game time, not the actual time).
Can playfun tell the difference between a bullet to the head (like your contra video) and the actual end and or “beating” of a game?
You once manually changed the goals of playfun so that it was more conservative with its lives, with the algorithms in place will it eventually do that on its own if run long enough?
It appears to issue commands up to 60 times a second (one per frame), can it be changed where it only tries to make a move…say…every 3 frames instead of each individual frame?
Thought I'd consolidate them instead of posting them over like a 2 month period.
Playfun is awesome! ...just want to find a way to help it progress better and more efficiently. |
|
Anonymous 1: Sure, go for it! It would be nice to have a thanks if it inspired your game, but do what you gotta do.
Anonymous 2: No? |
|
|
|
13188. prednisonemr (226.15.150.178.triolan.net) –
18 Feb 2016 21:00:32
[ Quake 3 Done! ]
Hiya be friends. 2+0+1+6 |
|
thks it fixed it rendering now |
|
I may have forgotten to include "controller.png" and "controllerdown.png" with the binary distribution; that failing on that line means it wasn't able to load some graphic.. You can download them from subversion (click the source link on the home page) and put them in the directory with scopefun.exe. Note that scopefun is the least user-friendly of the apps, since I was just using it on a one-off basis to make some of the movies! |
|
Sorry for the wrong name... ! |
|
Hi Tom, unfortunately I've had to get a new MacBook, but Escape is still not working under El Capitain... :-( I hope you'll be able to fix it soon! |
|
This is what I get from scope fun before it crashes
WinMain.
Loaded ddraw...
Get command line...
Parse command line...
Init SDL
SDL initialized OK.
With no command line argument, assuming movie name
smb-playfun-futures-progress.fm2
.. from config file.
scopefun.cc:49. Check failed: stb_rgba
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information. |
|
How do I set up scopefun? |
|
13180. Harry (c-24-20-218-48.hsd1.or.comcast.net) –
08 Feb 2016 17:33:52
[ Theme from Zürich ]
Thanks Tom
- In by last day of the month (Buzzer Beater!)
- NES Emulator thread safe pain (Alley Oop!)
- Theme from Zurich (Slam Dunk!)
- Woodworking "Console" (Swish! ... [miss] ;)
- Reassurance your weblog will still be going in 12 years (Bonus!)
That's only 144 entries away! |
|
If you want to write custom objective functions, put them in "mario.objectives" (if the game in config is "mario"). Each line has the floating point weight followed by the decimal memory offsets (0-2047) in descending importance. |
|
I think I'm getting this thing. So how do I, (without compiling anything) teach it a text based goal? The readme speaks of a "tasbot" thing but there is no tasbot.exe in the folder |
|
Here you go: http://spacebar.org/songs-nonfree/ Not sure anything in there is good except for the two I played at the show.
For drums, I mapped some drum samples (from a SID emulator?) to the standard channel 10 midi mapping, but only really for the drums that I tend to use. There are terrible volume problems and so on. Works better if you compose the drum track for t7eshero specifically. I also did something for live drums where you could select the patch set, but I don't remember.
I think I only use velocity of NOTE_ON to control the volume. |
|
One more quick question: does MIDI track volume control in-game track volume, or does only velocity work for that?
Also I'm really tempted to bombard you with feature requests but I know I should just learn ML and implement them myself! Argh! |
|
Rock'n'roll is very serious business and requires complete stillness at all times. (Alternately I may not have configured the tilt thingy properly.)
I think you're pretty close to implementing the time division stuff properly actually. The time division (aka PPQN, parts per quarter note) is the number of ticks per quarter note, which you seem to be reading & interpreting correctly in genscore when figuring out measure lengths. If we want to correctly calculate ms per tick, we know tick/beat and tempo is just beat/min so it's just a matter of math to get there. For example: my song is at 127bpm. 127 beat/min * 120 tick/beat = 15240 tick/min, 1/15240 min/tick * 60000 ms/min = ~4 ms/tick. Setting my song to 4 in songs.hero sounds pretty damn close to me. (I think most programs use microsecond, or maybe sample, accuracy for doing this kind of thing.) Possible you might have to multiply or divide by 2 if the timesig is in terms of 8th notes, but my instinct is telling me that's not necessary - I think when most DAWs say "beats per minute" they really mean "quarter notes per minute" regardless of time signature.
As far as how the drum sounds are mapped to MIDI notes, is it just General MIDI-style?
Thanks, I'll take a look at sound.c. My song has a lot of doubled parts since the arrangement wasn't intended to be played like this so it could use some cleanup too. I also had some issues with some notes missing from the score but I haven't messed with the watermark option yet, so I'm wondering if that might be the issue.
I wouldn't mind if you slipped me some nonfree songs one way or another :P Also I was definitely planning on doing some Ludum Dare soundtrack songs, that's at the top of the list! |
|
Nice! :) No accelerometer though??
Yeah, I actually don't do tempo changes in my music very much, I think I just got found the time division stuff very confusing and gave up on it. I'd like to support it, though. |5| is the tick multiplier, yes, and -1 and -1 are, I think "how much I like the song" and "how hard it is"? Not used anywhere, though.
Looks like "R" is RHODES (appears to be unimplemented) and D is drums (should work, though no promises it will sound good).
There is indeed a limit to the number of mix channels internally. You can probably just increase NMIX in sound.c and it will just work, though if it's large enough it'll start missing the sample deadlines (you'll hear it).
Some day I will put out a proper version of this game and will include some nonfree songs (e.g. the covers I did for that show), so if you make any songs that play particularly well, please contribute them. :) I vote "Spacious MiniMars" |
|
No worries! As far as less-documented open source projects go, this one was relatively straightforward :P (aside from the usual windows terminal stuff, which is always awful regardless)
In other news.... victory is mine!!! http://i.imgur.com/BZFhMJ5.png
120 PPQN worked just fine and got me to a reasonable tempo.
So are the |5|-1|-1| etc lines in songs.hero for the tick multiplier? What with all your timesig changes I'm a bit surprised you don't support tempo changes too :P
I did manage to figure out the + notation for tracks - that one was actually documented! :D Looks like there are undocumented R and D track types available too, what are those?
Also, is there a limit to how many tracks/voices the internal synth can do? I think some stuff was missing in playback but the song I was trying to use is pretty dense note-wise.
The MIDI exception is just "raise MIDI "unknown status byte"" at line ~328 of midi.sml, looks like it's in a big switch statement that handles the major types of MIDI events. |
|
Wow, sorry you had to go through all this; it's annoying even for me to try to compile it so I can only imagine!
The tempo problem is something that happened to me when trying to output songs for this last round, too. I think that there is a time division (maybe this is the same as ppqn) somewhere in the file that I am not handling properly in t7eshero. I think that I was able to get Sonar to make files it could use by changing the time division to 120. I'm not sure I ever even implemented tempo in t7eshero, rather, I translate midi ticks straight to an integer number of milliseconds. There's an int in songs.hero that sets this. You may just be able to turn up/down the tempo there.
BTW, in case it's not clear, you need to set track names like "+W" (saw) "+Q" (square) and so on in order to assign instruments; MIDI instruments are ignored. For genscore, you give it the set of tracks that it should generate the guitar tablature from. Most of the time I manually curate which tracks are active at a given time to get a playable score. Good luck! :)
What is the exception that midi.sml raises? I implemented this against some old documentation (I believe the "Sound Blaster Book") in college, so I'm sure it's not complete!! |
|
Almost there! (sorry for the spam but the process of figuring this out is really fun for some reason!) Had to figure out a weird MIDI workflow since Ableton Live apparently can't export full MIDI files (?!) but I made a proper MIDI of one of my songs and after some cleanup got it to play. The tempo is totally wrong though... reminds me of ages-old issues I used to have with midimml. In MIDI is the tempo supposed to be an event on the control (0th) track? I assume it's relative to the PPQN/resolution somehow... I'm exporting with default PPQN of 480 but I'm not sure if I have any other options in my DAW re: tempo in an exported MIDI. I've been combing through the genscore & sml-lib midi source a bit but since I'm not too familiar with Standard ML I haven't made a whole lot of progress yet.
Side note: midi.sml doesn't recognize aftertouch as a valid MIDI event/status byte so I had to scrub my file of all such data. IMO it should just spit out a warning & continue for known-to-MIDI-spec-but-unsupported events rather than bailing with an exception. |
|