Home
Exophase
exophase
.:.:::.:
Back Viewing 0 - 20  

You are not seeing this right now.

My userpic decided to hid his crazy hair under Christmas festivity. Enjoy.

I've been talking to hlide recently (yes, in addition to zodttd). hlide has been working on a PS1 emulator for PSP, or at least the CPU emulation. This is a very important thing, IMO, because Sony's firmware 3.0 emulator (which of course only lets you play a handful of games that you must purchase through a PS3 of all things) is causing a number of people to blindly upgrade and lose the ability to play any homebrew (including gpSP). Unfortunately the efforts getting the most attention are by clueless hacks who have been porting PCSX. I was in particular annoyed with the efforts of a certain "Yoshihiro", who has hyped his emulator for months (with the help of a stuffy individual who goes by magixien, more on him later) and demands both praise and respect. He's really pretty clueless when it comes to what's most important here, optimizations.

Fortunately, hlide knows his stuff. I don't know what his experience is with writing dynarecs, but he has some very good ideas. Some are a bit different from mine and incompatible; others aren't. I think that he has given me some very useful practical insights, and I also think that I have helped steer him away from some mistakes as well. So it's a good thing that we've been talking.

Unfortunately, magixien has started hyping hlide instead, and has decided to tag my name with his in the development of this emulator, as can be seen in this thread. He has in fact posted this very thread verbatim no fewer than three times across multiple message boards. It's pretty obvious that he realized Yoshihiro is hopeless (probably in light of the performance of the Sony emulator) and has now shamelessly jumped ships so he can be the front man of someone else. Because of this multiple people have already IMed me asking about my "involvement" in programming hlide's emulator, which is of course nothing.

Anyway, for those who want a technical headache, feel free to read the rest. *ahem* these are some thoughts on optimizing gpSP's dynarec, inspired by hlide. The first was his idea pretty much exactly, the second I'm still working on and is a hybrid of our ideas and experiments.

Dynamically patched memory handlers:

Right now gpSP performs memory read/writes done by the GBA's CPU by using a table to see if it can map these addresses directly to buffers in memory. If it can't, it will perform more specialized actions. hlide's idea is to determine what type of memory access it is, then patch the actual function call to a more specific memory handler to handle this. This handler will have to first determine if the address is still in proper range for it, if not it will repatch. The check to determine if the address is within a static range is actually a little cheaper than doing a full blown generic handler using a table. It will also make those special cases that are not mapped directly to the table much faster. In particular VRAM access will be sped up significantly, meaning that heavy 3D games like Asterix & Obelix should run great after this.

The only problem is that this approach requires a TON of handlers, particularly because on GBA unaligned reads must be handled seperately. This wouldn't be such a big deal if GAS's macro compatabilities weren't extremely minimal, but alas they are (it also wouldn't be a big deal if I could somehow get a C compiler to emit more rigid functions that don't use most registers and do other spilling, etc, but that's not going to happen). So this might be a lot of redundant work and a lot of debugging, but I think it's worth it.

This approach would actually be using self modifying code on gpSP's part, no lie. It's not really ALL bad, since it'd be infrequent. Just have to be sure to use the cache instruction to clear icache for the altered line.


Delayed modified block handling:

Self modifying code is basically a nightmare to emulate. hlide agrees, but he can really afford to ignore it most of the time because it's not so much of a reality on PSP. On GBA it is actually very common, or at least enough to make some games really slow by the current approach of handling it.

For gpSP, detecting self modifying code isn't too expensive: it incurs an additional memory read for every write. This address is based directly off of the address it's writing to, so it's just a few extra instructions. The problem arises in what to do after it's detected: currently, gpSP will flush all of the RAM translation cache, that is, the PSP code that has been generated for the code that was in GBA's RAM (as opposed to its ROM, this is where most code will be). It will then recompile at least enough code to get the thing running again, and probably more shortly after. If a game is constantly writing to an area that it used as code it gets unplayably slow pretty quickly with this method (see: Doom 2). I devised a crude hack to try to minimize it by artificially breaking up blocks so it wouldn't recompile too much, but this was game specific, ugly, and added overhead to the recompiler.

Instead, it'd be great if the modified block didn't actually get recompiled until it was accessed. hlide's idea (which he posted on ps2dev some time ago) was to modify the start of the block so that when jumped to it escaped to a recompiler. I think this is possible for gpSP, but since blocks can overlap a single modified GBA instruction can have multiple blocks which may "enter" it. I think it might be possible to track these using linked list entries, but I'm not sure yet. Hopefully this will work out, because games like this have proven to be a real headache. I think most games behave well enough but some are of this nature.

This is how I compiled VBA:

My roommate told me I can download Visual Studio Professional 2005 for free off of our university. 1.2GB I had it and I tried compiling VBA with the normal project file - I had to manually build the dependencies and install them, or at least that eventually seemed like the natural thing to do for someone with a more Unixy background. I hit a problem with needing unistd.h, but it turned out that that was just me botching the file while trying to get it to compile on mingw, so I grabbed it again from CVS. Then I realized I needed DirectX, so I got the 505MB SDK from Microsoft's website. Turned out that the headers/libraries were 24MB uncompressed, and the examples were some 740MB. Shame on you, Microsoft, I don't need your ridiculously fancy samples.

While searching for information about the unistd "problem" I found a guide on ngemu's forum that revealed to me that there was actually a VS 2005 project file included, so I loaded that up and lo and behold it compiled the dependencies for me, this time. With DirectX in place and the unistd problem taken care of I finally was able to compile VBA. This was of the utmost importance to progressing gpSP (because I'm not good enough to do this all on my own without some hints from other emulators, sometimes)


This is how I fixed Mario & Luigi:

My hours of debugging between gpSP and BoycottAdvance had revealed that Mario & Luigi crashes when an interrupt occurs at a certain point. Two global booleans would alternate between 0 and 1, we'll call the first one A and the second one B. A would normally be 0 most of the time and only 1 for a short period of time. However, when B is 0 (which seems to occur during certain transition scenes) A will be locked at 1 for longer, and the two will thus oscillate. So during those rare periods when A is 1 and an interrupt occurs, I discovered a terrible bug struck.

I first figured that this was a timing problem. Timing problems occur because instructions do not "take" as long in the emulator as they do on a real GBA, this doesn't mean in real time (of course you can't slow down every instruction to 16MHz when you emulate, unless your emulator is just slow) but it means relative to when interrupts occur. Each instruction takes virtual cycles, but to correctly emulate it so it takes the amount it'd actually take on a real GBA is very expensive. So, I give the best approximation I can do with only compile time information. This has in fact helped me get past a part just before the crash in Mario & Luigi, so I figured the crash was a timing bug.

To further back this up, the crash would not happen in Boycott Advance, however when the interrupt struck if I forced "A" to be 1 after it was read into a CPU register (which the debugger allowed me to do) it would crash. So I figured that interrupts are never supposed to happen when A is 1, and that it's a timing flaw exposing a game bug.

However, I soon realized that PSPVBA (PSP port for VBA) has the same bug I did fix with better timing, if you set the "average clock tick" to 1 or 2. PSPVBA basically had even less accurate timing than gpSP does now, which was done to improve performance (as a rather desperate measure). And yet, PSPVBA would not crash at the interrupt crash point, even if you set average clock ticks to all kinds of things. So I was completely confused, all I could reason was that the bug was in both gpSP and Boycott Advance, but it was only showing up in gpSP because of poor timing. A very unlikely explanation, but the best I could reason.

With VBA compiled, I could first confirm that it does in fact not crash with the same timing behavior as PSPVBA (this was the first modification I made). Then, I confirmed that the interrupt does in fact trigger with the "A" bit set, but only with the timing modification! So this in fact seems to confirm my previous explanation. Then, after a good amount of tracking, I found the divergence between VBA and gpSP; it was because of a strange usage of one of the block instructions on ARM.

I can't really be blamed for not having proper emulation of these. I literally reverse engineered games to death to find out how to do this, and I eventually asked gladius about it to confirm what I had done. The documentation just isn't there. Or maybe I should say, none of the ARM documents I've seen, nor GBATEK, correctly describe what these instructions actually do to calculate both their offsets and writeback behavior, they just give a vague conceptually overview (that is far from accurate, anyway). So I broke down and leafed through VBA's source. VBA's CPU emulation is far from clean, even though they use macros for a few things they don't in a lot of places where they easily could; I'd say the source could be done in well under half the line count. So, I manually looked through all the block instruction implementations and wrote down the differences, parameterized on the type of instruction, and modified my macros this way. The end result was actually somewhat cleaner than what gpSP had before, with the macros taking one fewer argument. More importantly, the dynarec isn't emiting more instructions (I didn't count, but I think it might be emiting one or two fewer).

After testing a few things I banged out a couple bugs with the implementation (really only one) in the interpreter, and was able to reimplement them in the PC and PSP dynarecs. Mario & Luigi gets past this point now and I have a tester playing the game.


This is how I fixed save games in Zelda, and hopefully many other games:

This part is actually really easy, now that I have VBA compiled. First, I looked at the games reported buggy in this department, thanks to a very hander GBA ROM lister tool someone gave me (rather forcefully, but I'm glad he did. Must thank him). They all used 8KB EEPROM so I figured the problem was there. I simply had both gpSP and VBA print out (in VBA, to the debug console, which apparently "systemMessage" is doing) the calculated EEPROM addresses in Zelda and realized the upper bits of gpSP's were shifted off correctly. That was simple to fix. It's just a miracle that it took this long to realize. I've had so many problems with EEPROM, I figured I'd have gotten it right by now.

I want to compile VBA so I can hack at it and take the first step in trying to debug certain games, in a long shot attempt to make progress. Doesn't look like that's going to be happening because the authors have made it all but impossible to do on Windows unless you've paid for your compiler. It won't even come close to working on Mingw/msys, Cygwin, or Visual Studio Express.

Right now I just wanted it to have some hope that I could leap into something. But at this point I'm really just grasping at straws.

I don't have friends here. People generally aren't interested in me and I feel rejected on a daily basis, to the point where I've started resenting people more than wishing for their interaction. Any attempt I've made has quickly turned over.

I spent most of my time in my room, cycling various forums. I can't describe how much I hate this. DMZX is boring, lifeless, and ridiculous. The PSP homebrew forums are all worse, filled with selfish imbeciles who are only there to find their own satisfaction and aren't interested in other people. On AIM I get nagged for ROMs and BIOSes several times a day and otherwise people constantly ask me pointless questions because they think I have the answer. All it is is asking for more and more and more from me while not caring even the slightest bit about me. There are a couple small exceptions and I'm clinging to them as best as I can but it's not enough anymore. There's nothing left to talk about and nothing to keep me going.

I've realized that all of this time I've spent online looking for something isn't because there's something to be found, it's because I've never mentally adjusted to what I've left behind. It's everything. There's no one close and important to me that I confide in and rely on, someone whom I'm actually important to. It's more than that, I used to spend a lot of time on IRC but right now the very thought of it sickens me. Really, I have nothing to turn to and I've dried up in terms of working on programming anything now. All I feel is extremely frustrated, tired, bored, bitter, angry, confused, lonely, and lost.

I wanted to just help people, I wanted to stop thinking about myself, but now I can't think at all. I can't find a stable platform to do anything, everything is grasping at things out of reach. There's nothing, I'm completely disconnected.

This is ridiculous, I'm starting to think I was better off being depressed and suicidal all the time, at least then I had a realistic goal in life.

zodttd, the mastermind of psx4all, is leaving the project behind. He'll instead be focusing on working with hlide, which is great news for the PSP scene. It's especially important with Sony's PS1 emulator right around the corner. I'm concerned about this because I know many people will upgrade to it and lose the ability to run our firmware, possibly forever. It's all a race.

But more than that, he also wants to work on gpSP for GP2X. He's made a post about it on the gp32x forums. We talked about it for some time. I'd like to work on it, I just don't have a GP2X and I don't know if I can dedicate myself to it. But I at least brainstormed with him for a while.

We'd corresponded a decent amount in private message, but this was the first time I talked to him online. I liked talking to him, I think we can both learn some decent things from each other. He also represents somewhat of an ideal I have.. he works for a very small company that writes games. Not that I want to write games, but like me he likes keeping things small and modest in work, and likes low level. We both want to do embedded software. It's good to at least find that someone relates with that, and likes doing things just because other people want it done. Everyone else seems to be after making some huge name for themselves and lots of money...

I'm not sure how the gpSP GP2X deal will go though. Then there's the notion of the DC port which is an entirely different matter, and a PS2 port which would be closer to the PSP one.. and a V43 port which would fall under the same category. So much, but I still have to focus on the PSP version.

At least I finally fixed the Mario vs. Donkey Kong bug. I thought it might have been in the contiguous conditional block scanning but convinced myself it wasn't because I tried something to eliminate it. But I did it wrong. So while trying to set things up so I could actually compare the interpreter with the dynarec I stumbled upon a dynarec where it DID work, and it was because of the conditional blocks. So I redid the flags modification checking and it works.

One less thing to worry about.

Don't know how I'll handle Mario & Luigi or Zelda. Those are the big ones. There are other slight problems and speed issues in various games to look into but I'm at least getting closer to my goals for 0.9. I also have to reimplement the unofficial kai features. He actually e-mailed me today, and I was very pleased that he did. He used a machine translation, which I found very amusing since I was telling someone that that was always a viable solution for him. And indeed it was. And he gave me patches, not just source. Excellent. Course, the only thing he added since his last release was something I already fixed because aeolesc told me about it (I wonder if they colaborate too?! :O) but it's the thought that counts.

Anyway. I like talking about all this technical stuff with people in IMs. I hope it lasts a while longer, although I'm afraid our dreams will all fade away. And the prospects of huge projects always scare me. A lot.

The MZX port actually scared me tremendously. I was convinced that what I was doing was impossible, but pushed forward anyway because I was so desperate to find something else to occupy my thoughts.

I think that's how my life will continue. Finding distractions from the chaotic cage of thoughts. I wonder what the next big one will be?

Oh, and I have to learn about Shor's Algorithm more so I can give a presentation on it Tuesday. >_>

I thought about doing something tonight that I was sure I wouldn't ever do, post in add_me. It's because I had this vague sense that there might be someone who is waiting for me to post.. the same way I am waiting for that person. Just one person, no one else.. sometimes I'd prefer no one else existed for me but that person. Who doesn't exist.

Like always, the post would be an appeal. An appeal of sincerity. I just want to try to show people who I am, but I don't think I can ever convey this. I don't think I can really sort out for myself who I am, although it seems pretty clear who I'm not. That's not worth considering.

I decided to look through the posts there to see if that person was making the first move. It was then that I realized I just couldn't say anything. My words don't belong there.. it's a competition. Try to convince other people that you're worth the one they should choose. I know, that's not really fair, it's really about appealing to others in unique ways. But it really isn't. Everyone there seems to fall into a few broad categories, and they all know this.. they're all trying to outdo each other. And for the most part they all have lots of friends. I'm sure Elig understands what I mean by this, and no, it probably isn't fair, but friendship.. people are not an infinitely renewable resource, there's only so much to go around. All the people with lots of friends all want to be friends with each other, because that means getting more and more friends to add to their collection...

Okay, so I don't really want a friend in this sense, because I can't afford to be treated without any consideration. Sure, I ask Es a couple times a week if he wants to do anything and he says he has plans with his real friends, and I keep asking. And waiting for him after class. Same with my roommates and all, although one of them is nice enough to occasionally apologize. Not that I blame her, I've barely known her...

Don't look at me like that because of what I'm saying. I WOULD do as much as I can for other people. It's not because I want people to like me either, it's because I want to be important to others. I've made that the most important thing to me but how can it sustain me when I'm physically incapable of keeping this up? I can't keep doing things that are useful for others without falling out for a while, if I'm not seen by them I'll just stop existing outside of my own chaotic thoughts, what I DO is not enough for all of the time. I can only do what people aren't really ASKING for, no one wants to actually ask me for anything directly. Or let me help them.. they all want to do things themselves. They want to be independent.. It's just.. pride...

I just want to be part of one person's life.

hearts-of-hope (I don't know if you prefer to be called by this handle, I'll go with the given context) if you're reading this, and I doubt it, you've got to know how much I envy you.

You've just got to.

I just slept for about 15 hours. I can't remember the last time I slept for this long. It didn't feel like that long. I had a lot of dreams, and while none of them so much fell into the "nightmare" category they all felt deeply disturbing.

It's really cold in here...

I don't know if I'll ever be able to escape all of the chaotic thoughts that grip my mind every day. I want to, I just don't know how. Sometimes I reach some kind of understanding with them but for the most part it's just hard to deal with. Especially when I'm very tired.. when I'm not on my guard anything can trigger them and I can get stuck inside. It happened today during class and I had to focus really hard to not completely lose it. Other times I'm actually just having conversations inside my mind, conversations I'd like to have with people.. but there aren't any people... not that I don't try to interact with others, there just aren't any conceivable opportunities and usually people don't want to have anything to do with me when I ask.

I still want to try fixing something up in gpSP to achieve better speed in games that write to VRAM a lot. That'd make my beta tester happy. I couldn't get a general solution going along the path I was thinking but I could at least minimize the current cost heavily with some optimization. The problem is that it'd take rewriting some things in ASM. The annoying thing here is that GAS's macro assembler is much weaker than C's preprocessor and for ASM it hurts further, I know you can somehow run the CPP (not C++) on GAS but I haven't figured out how and it just wouldn't really be the same since C is more uniform for writing different types.. so I'll have to have at least 3 different versions hand written out (maybe 6? I don't know yet.. okay probably not)

But it should be done... it's just hard to focus...

I don't even want to play TotA right now. I still haven't beaten it. Over 95 hours logged in, over the course of 9 days.. while still going to class and other obligations, I think. I'm not really sure how I managed that. I want to beat it as soon as I can, it just won't end D: But when I do beat it I don't know how things will be for me.

I'm still locked inside with all of this and there aren't any clear signs of a way out...

I didn't ask for anything much from her, I don't know why she had to ruin my life like this. :/

Where's Elig :(

He used to nag me on AIM to post in my LJ every few days.

I'd nag him to post in his LJ, if he came on AIM.

I miss Elig.

Do you ever wonder what it'd be like if you lost your memory? And you had your livejournal to go back on.

Would make me wish I took better journals, I guess.

Then you'd get to learn about yourself through the same perception that all of your LJ readers have.

Part of me will always desire to lose my memory. If I learn what happened to me as a third party observer it wouldn't pin me down. I'd be able to learn from it so much more easily. And it wouldn't cloud my thoughts each and every day.

It's a little different than wanting to remove something from your memory. It's wanting to reprogram your memories so that you still know them, but they're as if you never directly experienced them.

I wonder if this is one of the ways multiple personalities spawn..

I haven't fixed the bug in Minish Cap. My biggest problem is that I can't easily set it up in another emulator to be reproduceable. I see the ROM do all kinds of weird things that could be signs that something went wrong, or it could be the other way around (that it's doing weird things on purpose, but that makes things go bad). With these games it's impossible to tell because they do all kinds of things that are flat out wrong. If they were developing this for PCs they'd have had to release patches afterwards because there's no way this kind of sloppy coding seen in many popular GBA games would work within varied environments.

Keep that in mind the next time you complain about PC software being buggier than console software.

Speaking of console software, I bought a game a few days ago, for the first time in ages (although, it's my second PS2 game this year, which is the first time I've done that since 2002 or so). It's part of the Tales series, Tales of the Abyss. I didn't buy Tales of Legendia when it came out because I heard this one was going to be better, but that might have been a misinformed decision. Still, this is a pretty overall solid RPG. I don't have any real complaints except for some load time issues.

Enough nights staying up trying to debug games...

After fixing so bugs in Minish Cap my beta tester found one near the end and I don't think I can fix it.

It's like that bug in Mario & Luigi. Happens in the interpreter, it might be a timing bug. I don't know, I don't know how to approach it. It's deep in the dungeon and you can't get there with a save so I don't even know how to get there, with other emulators, so I don't know how I'm going to even approach this. I can't stand the thought of these popular games all having these problems I can't fix.

I can't get on AIM most of the time anymore, I don't know why. Something with my connection.

I'm stuck, I keep hitting the same couple of websites but they don't have anything new... there isn't anyone for me to talk to to help me straighten out my thoughts...

I know that I'm just here to do this program for other people but I wish I could pull through this more, I'm trying so hard.

I guess it's not really right for me to ask for anything...

I was at Es's apartment today for a little bit. We watched TV. Leah was there and commented loudly on every last thing that happened, after complaining about a bunch of things (like usual). She is really annoying. The most puzzling thing is that Es doesn't seem to mind at all. How could I ever even stand that person?

I think it's just wrong for me to look for any diversions from what I have to do.

I'm not sleeping like I should, but over this stuff, trying to fix games... I'm far from a model student or worker... I barely think about any of that.

I'm spent so I should just sleep, there isn't much that can be done for me or by me at this point. Maybe tomorrow I'll have enough energy to keep going. I doubt I'm going to get any special revelation or breaks on this one but that doesn't mean I get to stop working as hard as I can on it, whatever that means. I guess I just have to keep thinking of things to try, even if they're completely futile.

That's just why I exist.

I don't have a lot of LJ friends, so I sometimes find myself reading the friends of friends pages and so on. Sometimes I want to respond to what they say, but figure that'd be too unwelcome.

I wonder if anyone like that is reading this post right now. I strongly doubt it, but if you are you should respond. It'd be a pleasant surprise at least. *_*

I'm up far too late again, but I don't feel that bad about it. I stayed up late debugging gpSP. I care more about this than anything else, fixing games so people can play through them (and stop asking me about it but that's something else). I fixed it a while ago and am still up, though. I don't want to go to sleep because even though it's lonely being up here leafing around the internet it's even lonelier leaving all of that. I don't usually complain about being lonely, I just don't know if things will get worse as I succumb more and more to the desperate intangible hopes I have left in the night.

I also don't like sleeping because my dreams are bothering me again.

I got a fortune cookie today.

The fortune reads as follows:

"Being an able man. There are always."

Your guess is as good as mine.

"Dear Teachers Federal Credit Union Member,

For security reasons, your Internet Banking Service session has timed out. Please login again by entering your member number and password in order to re-activate your account.

https://www.tcudirect.com/onlineserv/HB/Login/Activate.cgi

Thank you,

Teachers Federal Credit Union
Internet Banking Department"

Of course, the (rather obvious) punchline is that I don't have an account with this bank.

But the best part of all this was that Thunderbird tagged the e-mail with "Thunderbird thinks this message might be an e-mail scam." That was both amusing and awesome.

Good work Mozilla Foundation.

Good work.

I've been playing StepMania for a while, thanks to my roommates. They also got their DDR pad fixed, so I've been playing In the Groove a little bit on their PS2. I'm much better at the former than the latter. My legs don't move in very useful ways. I can kinda barely pass some 5 footers on the pad.. I can get 80%+ on most 8 footers on the keyboard. And some 9 footers. I hope that I can one day be as good on the keyboard as my roommate Katey is on the pad. :B

I was late to class a couple minutes, but not much because my roommate decided he didn't want to come, thus he could drop me off so I didn't have to walk back from his car. The class was about discretizing matrices for PDE solving or something... and representing them so that you could do sparse LU factorization. I was tired. Then I did the two assignments for the next class. Or rather, started the second one, and wasn't able to finish. So we asked if we could turn it in later today and the professor said yes. That class was pretty easy to follow, it was about some simple imperative programming language and converting between it and Turing machines. Then I went back to the lab to finish my assignment and found that someone logged me off (screen was locked) even though the lab was almost completely empty. So I had to redo my Turing machine on the simulator. That didn't take long but I had to do a configuration trace of it and it involved like 75 transitions because I did mine in a way that involved more passes but was simpler to write the machine for. That was annoying and I complained a lot while doing it. Then I had great difficulty stapling the papers together. After finally getting the stapler unstuck it wanted to eat my papers and wouldn't let go for anything. Somehow I pried it off without tearing my papers apart.

I went outside to the cold realization of rain. I don't like waiting for the bus in the rain. So I went back inside and checked the bus schedule, then hurried back out to try to catch the upcoming bus but it was pointless because buses are never on schedule on days like today. The bus eventually came and I was all wet and my face was locked in twitchy mode. The bus was pretty full, because when it's raining everyone huddles on them without thinking, and from the sounds of the conversations a lot of the people didn't even know where it was going.

I got off at my stop and decided to go get food, even though it was still raining I was hungry and I didn't want to do it later today. And the mall is right across the street from the bus stop. Outside of the entrance I saw a person whom I suddenly realized was a cardboard cutout. Then as I got closer to him saw him blink and thought it was a fancy trick. Then I realized he was actually a person afterall. A very convincingly flat looking person. I was still tired. Inside I got Chik-fil-a and double taked at what appeared to be perhaps the best restaurant giveaway ever. I also got a free sample of almond pretzel. It was yummy. And I heard a really young girl reading a Chik-fil-a ad, probably because she just learned how to read.

On the way back I saw a kid riding his skateboard. I wondered if he actually waited for the ground to be slippery from the pouring rain because normal skateboarding is just not dangerous enough. Then I saw someone run through a red light at a fairly busy intersection.

Rain makes people kinda dumb.

This is how I have fun with people who started IMing me because of gpSP.

[07:33] Member of a bōryokudan? Ask Lee Byung-hun..: im sick of these naruto fillers
[07:33] Member of a bōryokudan? Ask Lee Byung-hun..: ive started reading kakashi gaiden
[07:33] Exophase: AAAH YOU'RE THE 7:30AM MONSTER
[07:33] Exophase: I read all the manga.
[07:33] Member of a bōryokudan? Ask Lee Byung-hun..: dont tell me
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: im gonna styart reading the manga
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: dont spoil it
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: please
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: im on kakashi gaiden just now...
[07:34] Exophase: Kakashi is Naruto's brother.
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: shut the fuck up
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: fuck you
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: fuck you
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: fuck you
[07:34] Exophase: Naruto learns how to summon um..
[07:34] Exophase: Giant..
[07:34] Exophase: Bees.
[07:34] *** "Member of a bōryokudan? Ask Lee Byung-hun.." signed off at Mon Oct 16 07:34:39 2006.
[07:34] *** "Member of a bōryokudan? Ask Lee Byung-hun.." signed on at Mon Oct 16 07:34:53 2006.
[07:34] Member of a bōryokudan? Ask Lee Byung-hun..: what the fuck is your problem
[07:35] Exophase: I was lying :P
[07:35] Member of a bōryokudan? Ask Lee Byung-hun..: please
[07:35] Member of a bōryokudan? Ask Lee Byung-hun..: oh
[07:35] Member of a bōryokudan? Ask Lee Byung-hun..: thanks
[07:35] Member of a bōryokudan? Ask Lee Byung-hun..: thank you
[07:35] Exophase: That was fun.

I have this huge project due in Scientific Computing Wednesday morning. Like many, I haven't started it. Bad, bad Exophase. I want to dedicate a lot of today to this. The problem is, I haven't really gotten any sleep.

So I'm trying to figure out the best way to take care of this.

8:00 AM - 9:15 AM: Scientific Computing class
9:12 AM - 11:15 AM: Frantically try to get homework started and completed for 11:15 class. This time there are TWO assignments due. Double the fun! They're over Turing machines though. <3 alan turing
11:15 AM - 12:30 PM: Theory of Computation class
12:30 PM - 1:00 PM: Bus home
1:00 PM - 6:00 PM: Sleep
6:00 PM - 2:00 AM: Interspersed work on assignment while posting to Livejournal. A lot.

I think this could work.

Back Viewing 0 - 20  

Advertisement