Do not contact me about bugs in Asar, LMSW or ZMZ. I no longer maintain those tools. No exceptions.
Fix it yourself if it's that important, they're all open source. Reports and feature requests for AlcaRobot, Floating IPS, and those random small tools will be accepted. The ZMZ cores aren't mine, reports will be accepted.
For what you really came here for, click here
. Or enjoy this tilde: ~
I am a random Swedish
boy, of exactly the right age, no more no less (shut up about updating this one).
I have been here on SMW Central for far too long, and I worked with SMW for a while before that (my first post was asking for help with ASM).
While I have no problem with advanced ASM, with experiences ranging from making levels with only xkas
to replacing Mario with another character
, my favourite programming language is C++ (translation for non-technical people: I can and do make tools
I tend to be quite contrary, ignoring and contradicting most social norms I don't understand or agree with. For example, floating Munchers were quite impopular a while ago, so I immediately embraced them.
I also like the numbers 42, 735, 41433505, 16722, 3838, 1686 and 845 (sorted by which I like the most; each one means something, but they're not related to each other).
My favourite games, in order:
(adventure/puzzle/humor; the only one here that's not stupidly hard)
Super Meat Boy
Epic Boss Fighter 2
I have a heart of darkness, filled with regret, anger at the world, and sadness how the universe is merciless.
The universe is cruel, and that makes me want to get revenge on the universe and everything in it for 0% harmony. I would bring absolute peace to the world where no negativity can happen and everything is happy. Would that not be the kind of world you people would want?
Every time I miss out on something I want or become sad or angry, I turn to my dark side, who always rambles about the universe and merciless life. Whenever I sink into deep pessimism, you'll never look at me the same way again...
I try to give life a chance. I really do. However, it is too evil for me to even come out of my house. But there's no safe place from everything bad in the universe. No matter what you do, or where you are, death awaits you.
I wish I was never born. Someday, the universe will pay for all the horrid things it is has done to humanity and other extraterrestrial life in the universe.
I do not fit in with the other people. I am much different from them.
Anything can trigger the dark side of me, from your average every-day problems to natural disasters to the destruction of the world.
This is the first time I have revealed my dark side. You guys ought to get used to this. As for the creeped out, it is not my decision to tell you guys to be creeped out. That is not how it works. You must feel the emotion yourself without a seal of approval.
And with that, I fade into darkness...
Because the file bin is pretty limited, I made a Greasemonkey script
that allows you to upload and delete multiple files at once, and to sort the files by type.
Note that it's only tested in Firefox with the default scheme; anything else may mess up in various ways.
If you've got any tool requests, or ASM requests I find interesting (the rules for what's interesting are unknown even to me, though I seem to prefer debugging stuff), send them to me and I'll see what I can do. Note that the most common result is that I don't find it interesting, and you get only a few RAM addresses and code snippets, with me expecting you to put it together by yourself. [last updated Jan 1, 1970; may no longer be valid]
Reasons why ZSNES' emulation core should be avoided
(still looking for a list for why TRASM sucks - I think someone said it assumes 8bit mode for all opcodes, but I haven't verified this.)
Comparison of ZSNES' interface with Snes9x:
(+ means ZSNES does it better; - means Snes9x does it better.)
+ Savestate manager, with previews and stuff
+ Rewind system (update: apparently Snes9x >= 1.54 has that too)
+ Snow (this is the biggest one)
+ Hotkeys are customizable (most of them, at least)
- Draws all widgets by itself, instead of looking like the rest of the computer (some see this as an advantage, that looking like a 20 year old program adds to the charm when you're playing 20 year old games; I don't)
- When the mouse enters the ZSNES window, it's moved to where it was when it left
- The mouse has a different speed when on top of ZSNES
- Defaults to BMP for screenshots, with PNG as a non-default choice (Snes9x supports only PNG)
± Savestates are accessed through a slot selection system, instead of one key per slot. Which is better is a matter of opinion; Snes9x's key-per-slot setup makes it easier to access multiple slots, while ZSNES' slot selector uses fewer keys, and allows for more slots without becoming unwieldy.
bsnes 0.70 vs Snes9x (+ for bsnes, - for Snes9x):
+ Has rewinds (update: apparently Snes9x >= 1.54 has that too)
+ Puts SRAM/etc beside the ROM, not beside the emulator (applies only to Snes9x >= 1.52, older Snes9x are sane)
+ Hotkeys are customizable (most of them, at least)
+ Offers both Snes9x-style mapped savestates, and ZSNES-style slotted savestates
- Only three mapped savestate slots are mappable to hotkeys. Not sure how many slotted ones.
- Disables all input if holding Ctrl/Alt/Shift (hard to do otherwise if Shift+F1 shouldn't trigger F1 and hotkeys are mappable, but not impossible)
higan vs anything else:
Infinite minus for copying the ROMs to a subdirectory of my home directory, and placing everything relevant nearby. Close enough to impossible to know whether there's any SRAM nearby, as well as being annoying to delete the SRAM from.
Another infinite minus for demanding a custom .so file in a directory only writable by root; without that, it refuses to load ROMs in the standard formats.
For those reasons, I refuse to use it long enough to make a proper judgement. Actually, that probably is a judgement.
I haven't used RetroArch enough to make a judgement, either; it seems intended to be used fullscreen and with a controller. I don't have a controller, and I prefer my things to be windowed. I believe it's intended for more dedicated gamers; casuals like me are better served by something else.
List of xkas v0.06 bugs I know of (please PM me if you know of any other bugs):
- !x = xxxxxxxxxxxxxxx : !x = xxxxxxxxxxxxxxxxxxx overflows a buffer and crashes.
- xkas replaces every instance of the % operator with 0b, ignoring that % is the modulos operator as well. Luckily, that operator is rarely needed.
- Despite this, db 0b10101010 is an unknown label.
- PEA Label doesn't work. This made PER $0006 more common than needed for a while, but these days, PEA.w Label is the standard replacement.
- !x = $19 : LDA !x refuses to assemble. Splitting it to two lines solves it.
- DEC $1234-1,x is treated as DEC.l, which doesn't exist.
- LDA Label is always treated as LDA.l, even if the label is in the same bank.
- TSB $7FC0FC (and other opcodes, for example INC) is treated as TSB.w. No error, of course; you won't notice until your patch suddenly disobeys the ASM file.
- REP 0 assembles the instruction after it once, not never. A workaround is REP -1, or any other negative number.
- Garbage in table files doesn't print any errors; instead, it gives various very strange results. "AAAAAAAAAAAAA" is ignored, and "Awesome garbage 'n' shit=42 FLYING HIPPOTAMUSES" acts like "A=42". To make it even stranger, every eighth digit is OR'd together, so "A=8100000018" acts like "A=99".
- level10:!Freeram = $13E6 defines a label containing invalid characters. No error is printed (until the label is referenced).
- .derp: defines another inaccessible label. No error is printed.
- 12PlayerStim: is also inaccessible.
- LDA.B #$42 refuses to assemble. The .b is case sensitive.
- incsrc thisfiledoesntexist.asm crashes after printing its error.
- The documentation mentions that only 512 incsrc's may be inside each other. This is fully acceptable, but the truth is less acceptable: Only 512 incsrc's may exist at all. Anything above that makes xkas crash.
- Including the same file twice kills xkas for some crappy reason. (You can work around it by refering to aliases, like incsrc 1/../include.asm : incsrc 2/../include.asm : incsrc 3/../include.asm.)
- Misplaced #s are ignored annoyingly much - LDA $#01 is treated as LDA $01 for some crappy reason.
- Misplaced s are also ignored; LDA [$00],x is LDA $00,x.
- Not even LDA $[1#2] is rejected! (What it becomes is left as an exercise for the reader.)
- If you call a macro before it's defined, and this macro contains a label (example), xkas crashes. I have no idea why.
- db 1 is treated as 1, and db -1 is treated as -1, as expected. However, db --1 is treated as -1, db ---1 is treated as 1, and db ----1 is treated as -1.
- print "%i" is treated as print "0". print "%.8X" prints 00000000. print "%n" crashes.
- xkas throws "Invalid command." errors if it sees the string ", " in a quoted macro argument for some silly reason (example).
- db 1/0 will, rather predictably, crash.
- Less predictably, incgin data/gfx.bin (typo intentional) calls the math parser, doesn't find the label "gfx" (or "gfx.bin" or "gfxbin", not sure), defaults to 0, divides by it, and explodes.
- If you use a math statement ending with an operator, for example db 4+, xkas pretends there's a 0 there.
- The same applies at the start: Begin with an operator, get an invisible zero. You can even use db * if you want to confuse people. (db - gets interpreted as a label access.)
- The math parser is FAR too forgiving. db @#$%^&*() prints no error; instead, I think it's interpreted as 0^0&0*0. (! and _ are undefined defines and labels.)
- Using 128 math operators in the same string crashes xkas. This can give interesting results. (You're not going to run into this one unless you're looking for it, though.)
- Making xkas print an error message longer than 16384 characters is another crash.
- !a = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa : !a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a, with the : replaced with a linebreak, doesn't expand all the defines.
- db $42, (with the comma) returns 42 2A; other blank strings will return other seemingly random values.
- dcb "INIT" prints "invalid opcode or command [dcb "INIT"]", as expected. But it also prints "label [INIT] not found [dcb "INIT"]".
- If an opcode argument is not a single number, the size guesser decides to use the maximum size possible; for example, LDA 2+2 is LDA.l. Doubly annoying when the argument is prefixed with #.
Awesome IRC/whatever quote archive:
Disclaimers and rules:
These items are what I personally found funny at any given moment. They may or may not be funny to you, and may or may not be funny to me the next week (for example, if it's a copypasta meme, it gets unfunny very quickly).
Do not suggest quotes for inclusion; I decide that.
If you don't want to be included here, tell me and I'll anonymize it.
The AnonymousAnimals are assigned depending on user behaviour in the given quote, or randomly. They have no relationship to who posted it. The mapping is constant within each quote, but not between them.
<Impetus> its not necrophilia if you reanimate the body with necromancy
<LucasRCD> Alcaro is Cthulhu in disguise
<LucasRCD> Just picture Cthulhu in a walrus suit and a little tophat
<LucasRCD> That's Alcaro
<Alcaro> 100% accurate
<Kieran> dear sir or madam
<Kieran> you were blessed with a keyboard
<Kieran> use it
<My brother> Underscore: The Anime (Starring Muncher as Muncher)
<Ragey> vertical levels are the zsnes of smw
<p4plus2> !ar 4am anyways sleep time
(the real command is !ar 4m)
<Ersan.io> Hi I'm the real Ersanio. Two weeks ago I was kidnapped and have been impersonated by someone else. The authorities busted the kidnappers and I'm messaging from an internet cafe in turkey right now.
<Eevee> i can't wait till a fucking 10 year old appears at alcaro's house and tries to kill him with a fidget spinner
<Alcaro> i'll kill him back with a fly swatter
<Medic> alcaro would die
<Gloomy> he'd run the antivirus instead of calling the cops
<Gloomy> so yea he'd die
<Name removed> The higher powers of this internet-based room for conversations prefer to dress themselves as members of the opposite sex and are very unpleasant
<DragonDePlatino> If i want runtime performance, I go with C/C++. If I need to write it quick, I go with Python. If I need some amorphous language that is neither quick to write nor quick to run I will slip in the bathtub then decide to use Java.
<AnonymousKoala> im still being sent questions
<AnonymousWalrus> koala what is the airspeed velocity of an unladen swallow
<AnonymousKoala> not fast enough to destroy the holograms that the government put up to fake 9/11
<Alcaro> [irrelevant], which automatically gives you +50 shitposter points
<DrTapeworm> how many points does actually throwing shit at people in real life give you
<Gloomy> that's shittossing not shitposting
<Alcaro> depends on what you aim for
<Gloomy> now, if you actually posted shit into the mail then ye, that'd be 500 shitposter points
<Alcaro> if you aim for the signpost, I'm gonna count it as shitposting
<Alcaro> that too
* Alcaro emails needsmorejpeged cow feces to gloomy
* Gloomy emails a Windows 95 CD to Alcaro
<Alcaro> neat, free viruses https://xkcd.com/350/
<gbreeze> new custom block! Use this to reverse the gravity in your hack. Folder comes with 3 uberasm patches, level_asm code, 3 blocks, 2 sprites, a custom patch, a word document that explains the block in 3000 words or less, a jpeg image created in Ms Paint that shows where to place the blocks without crashing the rom, a new version of asar, 6 custom songs, lunar magic 1.0 and windows 7
<ThePat545> have you been living under a dwayne johnson
<PKstarship> humans are like deluxe monkeys
<Erik> MY ROM ISN'T CLEAN
<Eevee> take it to the car wash
<Erik> ah alright thanks
<Hobz> the only thing i love more than mario is being right on the internet
<blm> zsnes users are the flatearthers of emulation
<Karlton> donald trump's hair for president
<ThePat545> THROW IT AT HIM NOT ME
<Qwoll> AH, lets sing something else
<ThePat545> never gonna give you up
<Alcaro> for once i agree with qwoll
<Alcaro> okay i no longer do
<MayGuy> u walk into drex's house and the first thing u see is him jacking off in front of his computer to 256 different sprites of questionably drawn anime babes rotating at different speeds
<ThePat545> the plot twist is that he's getting off from the number 256 and not the anime girls
<My brother> Finnish is just Danish in Japanese
(talking about music)
<VitorVilela> 3/4 > 6/8
<VitorVilela> that's a fact
<Alcaro> 3/4 = 6/8 = 0.75 and I will never figure out what your russian math means.
<Jimmy52905> music = russian math?
<Jimmy52905> sure why not
<Alcaro> it's crazy therefore it's russian
<Alcaro> completely logical
<LucasRCD> I need someone to make me a tutorial on how to kidnap an ASM god
<LucasRCD> Is one of the steps selling my soul to Kieran and praying to Alcaro every night?
<Alcaro> #staff: quality conversation
<Hinalyte> excuse me, this conversation is at top quality
<Archie> excuse me, this conversation is at top quality
<nameless> excuse me, this conversation is at top quality
<Noivern> excuse me, this conversation is at top quality
<Eevee> excuse me, this quality is at top conversation
<My brother> "The sky outside was a great black ceiling, which was full of blood."
<Eevee> your timezone is ugly
<Eevee> i hope it dies
<Eevee> and then causes a rift in time and space
<Eevee> then destroys the universe
<Ragey> typing nonsense assembly will summon alcaro
<Ragey> best be careful with that
<Dan> erik code me a boss that sjfksiwjjdkakdowke837u4rkisjeiw and then dies