Hackreconciles the fast development cycle of a dynamically typed language with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.
Hack provides instantaneous type checking by incrementally checking your files as you edit them. It typically runs in less than 200 milliseconds, making it easy to integrate into your development workflow without introducing a noticeable delay.
XHP provides a native XML-like representation of output (e.g., HTML) and allows UI code to be typechecked, automatically avoiding several common issues like cross-site scripting (XSS) and double-escaping.
HHVM and the Hack language are in active development. We are moving fast, making changes daily and releasing often. If you notice a regression in the typechecker or the runtime, please open issues when you find them.
This is a wiki post. If you have something to add, please do!
I think it would also be nice to have short gifs demonstrating each trick. If you have fun recording those, it would be greatly appreciated.
Can you give (or link) a more general explanation of how RemNote uses Markdown (for someone like me with minimal understanding of Markdown)? I ask because I wonder if this trick of writing Markdown in a code block then Ctrl+Shift+V back to RemNote can be used with other ways.
Content that is added through the API or by pasting is considered markdown (see Ability to create all content via API [and RemNote flavored markdown] (paste syntax) UMNiK was faster ) and is then transformed into the Richtext elements RemNote uses internally.
I would like it more if there was a similar UX like the LaTeX popup for the URL (the title can be edited in the text). Or like the popup here in Discourse when pressing Ctrl + K which has inputs for both link and title.
hannesfranks hack to edit hyperlinks no longer works in RemNote. Pasting a link into a /code block shows the title (or url if there is no title), but none of it is in markup format with title in braces and url in parantheses. This hack DOES still work, but only if using /iic inline code (i.e. markup displays).
Yes! By participating in this event, you agree to the code of conduct (sponsors, too!), so you should read it. The TL; DR of it is that harassment and abuse are never tolerated; if you are in a situation where interacting with an event organizer or hacker makes you uncomfortable, please report it to
member...@rewritingthecode.org.
Yes, you can wait until January 18th to upload your resume and ensure it will reach all the companies. You can upload your resume any time before the event, but after January 18th, we can only guarantee that some companies will see it prior to the event.
RTC believes in creating spaces where every participant feels welcomed, included, and accommodated. Our events are molded to meet the diverse needs of our attendees, ensuring that learning and interaction are accessible to all.
In the last days, I've been reading Lou's Pseudo 3D page after reading up on how Sega's sprite-scaling and drawing hardware works. Lou has provided some case studies there, as well as a snippet out of the disassembled code of Enduro. There's also a thread here on Atariage where he discusses with the author of Road Blasters and S.T.U.N. Runner on the Lynx (Solidcorp) how the pseudo 3D on those games works. This made me curious how Pole Position works, especially how it stores the track information and how the curve is calculated out of it.
So I went do study its sourde code which has been released some years ago. While searching for this, I also found an old thread about road drawing code where I put up an experiment on the PC drawing a road in pseudo 3D in Pole Position style.
Well, I made some progress this morning in finding out how it all works, and while doing so, I kept adding additional comments to the source code because while it does contain some comments, it's far from explaining how everything works, so I had to figure out quite a bit.
One thing that occured to me while looking through the code was that the curves never seem to extend all the way down to the player, but keep hovering in a distance from it while the road in front of the player is always straight. I tried to find out what causes this behavior and found that it's no technical reason, but must be some kind of oversight, or maybe a trade-off against something else. Specifically, in the source code, you find two tables SHIFT1 and SHIFT2 which start out with a bunch of zeroes each. For the 3D effect to work properly, these have to be populated differently, otherwise the bend of the curve would have to exceed a certain angle in order to become visible, which never happens in the lower half of the displayed road. Since I found this out, I tried to correct the tables, and this is how this hack comes about. I also amended the MULTIPLY table since it seemed like the road always straightened out near the horizon even if you were in a curve.
This, however, wasn't done in the source code, but via a hex editor in the binary file. The source code wasn't changed at all, it only contains many additional comments now. So I've attached the hacked binary as well as the enhanced source code for you.
Well, not easily, but there should be. I didn't look into the details of scoring, just noted that it's tightly coupled to the car's position on the road... the tens digit gets advanced smoothly, and each time it fully reaches a number, the variable CARY, giving the LSB of the position of the car on the road, advances by one, so there's 1024 possible positions. The first lap gives 10,000 points, and the following ones give 10240 points each if I'm correct. The question would be how much the maximum time remaining would be, and the maximum cars passed. I don't know at which rate the cars can be passed and what lap time the maximum speed would give. Then you'd have to factor in some losses in the first lap of the race by accelerating to full speed, which is further complicated by the fact that there's two gears, so you'd have to find out the optimum point for shifting into 2nd gear as well. Once you've done all this, it should be possible, I think. In my tests, it was certainly possible to go through the laps without ever slowing down (which would be impossible in reality! Keep in mind that the track is based on the then-current version of Fuji Speedway, but greatly simplified to fit into the cart).
OK, so I haven't had enough... here's another version of the hack. This time, aside from leaving the improved curcve in, I tinkered with the gameplay variables a bit more. While playing the game, it disturbed me somewhat that you can go through the sharpest curves without braking and still stay on track. This is unrealistic because on the original track (Fuji Speedway) you have to slow down a lot in curves, as the implementation of the track in Gran Turismo 4 shows. So I doubled the values for the centripetal force, forcing you to slow down in nearly every curve. To compensate for this, I've increased some timer values, so while it seems to be impossible to beat the first lap in 58,5 seconds now, you're given a bit more points for qualifying at all, and also an extended lap gives you ten seconds more than before (63 / 60 / 58 instead of 53 / 50 / 48). Still I think this version is much more challenging and realistic. I now get lap times around 65 seconds if I make a lap without crashing. For a comparison, the real record lap time on that track configuration of Fuji Speedway (it has changed multiple times) was about 70 seconds, so still a bit slower.
A nasty side effect of this is that the scrolling of the mountains got somewhat uneven, which probably could have been corrected by changing some of the code, but I didn't want to do that. Another side effect is that skidding now slows you down much more than before, so you still actually don't need to brake.
Funny you should mention that... I'm actually trying to do just that. At least I'm trying to comment the disassembly. Alas, there isn't the original commented source code around like for 2600 Pole Position, so it's harder to find out what's what. There's also no equates in the disassembly, and I'm not used to programming the 7800, and the game is four times as large (32K vs. 8K), although about half of that is data. I couldn't find the place where the curve gets calculated yet, but I'm trying to figure something out. Anyway, I think the curves on the 7800 are looking a bit more realistic than on the 2600.
I've pushed this a little further. I took Kurt's commented source and converted it to compile with DASM. Next I added in switches so that you could compile both of Kurt's hacks, Kevin's Hacks, and iesposta's hack. I also added in defines for the colors, and put them at the top of the source. It is a lot easier to change the colors now. Next I added in some visual graphics beside the graphics bytes (to see them better), and finally my own hack for a Sega Genesis controller.
With this source, by changing the switches at the top you can make different combinations of roms. You can also make exact matches for all 3 non-hacked dumps, and of course all the hacks in this thread. Lastly, I compiled some PAL60 roms of Kurt's hacks, and a NTSC rom of Kurt's second hack.
I don't know which line you mean by the address $19E7. I don't have DASM set up so I could readily compile the code myself at the moment, and I don't want to go into this right now since I've got the flu... maybe next week.
By the way, I think the tables SHIFT1 and SHIFT2 could be done away with completely by doing the calculations slightly differently (the way they are set up now in my hack). However, I can't figure out how exactly right now since I actually haven't completely figured out how all the adding and comparing when calculating the curve works. Or maybe I had figured it out when I posted the hack, but I forgot about it by now.
Using them is as easy as dialing a few digits and symbols; the phone will distinguish your actions at once and give you the answers. Keep reading to find out more about these essential cell phone codes and hacks:
3a8082e126