On the other hand, I don't know if there is any alternative to drawing out tile maps in hex. Can anybody tell what this is supposed to be?

Not without context. Also, whoever hand-coded that decided to stop complying with a consistent syntax near the end (they stopped zero-padding their zero values, e.g. 0 instead of $0000). The alignment can help. If it's a map/screen layout, maximising the screen + sitting back from it a little ways might give me an idea of what it's supposed to be. A logo? A town with a road through it? Hard to tell.

For tile maps it might not always be so bad to do hole tracing, especially if you can make an engine that's using metatiles to bring the tile map file size down. But for sprites and background graphics? No way! I don't think my right brain even understands the concept of hexadecimal numbers.

tepples wrote:

Pokun wrote:

You'd be surprised how many professional programmers I know that are absolutly afraid of anything assembly.

And you'd be surprised how many programmers on this forum are afraid of tools written in Python as if they were a snake. It's as if they have one level, and they're unwilling to accept anything lower (assembly) or higher (Python) than that.

Hahaha that's stupid... eh hey!

Alright alright I'm going to go and install that stupid serpent one day... I have a new computer so it should probably work this time.

Espozo wrote:

PCX2SNES is the way I do it. It kind of sucks though. Straight uploading of tile data is the only useful thing. You can try and do the stuff where it automatically makes its own palette and tilemap for a background, but it can only handle one screen. What would have been useful is if you could give it the palettes that are being used in the image and possibly the tile data how you want it organized and the final picture, and it would create a tile map based on that. You would just add the palettes and the tile data by themselves later.

Oh yeah though, another BS thing about PCX2SNES is that it won't make a file smaller than 512 bytes; it will pad it with zeros. You can fix this with a hex editor, but you shouldn't have to.

But how do you go and create the pcx files in the first place? No respectable image editor seems to be willing to even touch that format with a pair of pliers anymore.

I think the fact that even I know ASM (albeit, after loads of help) invalidates any argument that says it's too difficult to understand.

That's because High school and College programs that involve programming use Java (and have been since 1998.) Looking at the local University's webpage they only mention Java and Python. Java has no Assembly code to look at, and neither does Python.

When you program something in C, the C compiler may produce Assembly code that you can look at, but unless you suddenly switch from C to assembly at that point, any changes you make at the assembly level are going to be erased when you next compile the C program. Likewise if you fail to initialize variables in C, you will never get two executions of the program to produce the same results.

As far as difficulty, it's only as difficult as you make it. If you load up a file in a hex-editor and transcribe the instructions to bytes itself, yes it's going to be hard.

_________________I come from the net. Through systems, peoples and cities to this place.

You'd be surprised how many professional programmers I know that are absolutly afraid of anything assembly.

And you'd be surprised how many programmers on this forum are afraid of tools written in Python as if they were a snake. It's as if they have one level, and they're unwilling to accept anything lower (assembly) or higher (Python) than that.

I think it's more that you didn't present it as a standalone executable. My response to python is "eww"; why use python when you can use java - a self contained jar file, or wrap the jar file in an exe (windows for the win!).

For example, Tilemolester was distributed as a jar package and was quite successful. That same app in python probably wouldn't have gone anywhere. People who don't code in python, just have an aversion to it. Doesn't matter if it's logical or not. What matters is that it exists. If you want to create tools for yourself, no problem. But if you really want others to use your tools, you probably shouldn't "put your wallet in someone else's pocket".. so to speak. I remember people releasing tools in PHP, for rom hacking, and no one would touch them.

Just curious, but why do programmers pick python over java? My university just switched the two CS level I and level II pre-major classes (known as the elimination courses; weed out people trying for CS major) over from Java to Python - everyone (faculty and students) have collectively rolled their eyes. Java is now introduced as the third class in, in the pre-major line.

On the other hand, I don't know if there is any alternative to drawing out tile maps in hex. Can anybody tell what this is supposed to be?

Not without context. Also, whoever hand-coded that decided to stop complying with a consistent syntax near the end (they stopped zero-padding their zero values, e.g. 0 instead of $0000). The alignment can help. If it's a map/screen layout, maximising the screen + sitting back from it a little ways might give me an idea of what it's supposed to be. A logo? A town with a road through it? Hard to tell.

I think the fact that even I know ASM (albeit, after loads of help) invalidates any argument that says it's too difficult to understand.

That's because High school and College programs that involve programming use Java (and have been since 1998.) Looking at the local University's webpage they only mention Java and Python. Java has no Assembly code to look at, and neither does Python.

Sad world. I guess that's better than my high school though; there isn't even a programming class. Assembly was the first (and only) thing I know. I still imagine it's easier to get into assembly after learning a higher level language than to have no programing experience, or do you still have to start from scratch?

Just curious, but why do programmers pick python over java? My university just switched the two CS level I and level II pre-major classes (known as the elimination courses; weed out people trying for CS major) over from Java to Python - everyone (faculty and students) have collectively rolled their eyes. Java is now introduced as the third class in, in the pre-major line.

Every language has it's strengths and weaknesses, but for a university, it's a question of finding professors who actually know the language versus whatever is "hip" at the time. In 1998, that Java course I took, I ran circles around the professor, and I had never touched Java once before (only BASIC,) simply reading the Java manual was faster than waiting for the class to catch up.

I won't even get into why it's better to learn C than Java, but suffice it to say people need to learn the languages that they intend to develop software for, not the other way around. If you apply for a job at a game development company with nothing but "Java and Python" they will probably accept your application for linux server administration, but not game programming. If you have C and C++ in there, then you may get to use your java or python experience to write build tools.

From Capcom's job page for software engineer:

Quote:

2 - 6 years’ experience with C++ programming and debugging.Game console development and optimization experience is preferred.Bachelor's degree in computer science / related field, or equivalent experience.You have the ability to write structured and well documented code. With attention to detail.

Here's a similar one from EA

Quote:

• Post-Secondary education in Computer Science, Computer Systems, Computer Engineering, or equivalent training and professional experience.• Strong expertise with C++ and experience in object-oriented design and implementation.• Experience with C# and/or Lua• Demonstrated knowledge of good software engineering practices.• Understanding of memory management, multiple processor use, and runtime optimization.• Excellent debugging skills and experience using tools to help debug.• Strong ability to work with internal and externally developed code in a collaborative fashion.

So C++, C#, LUA. No Java and no python for games at least. The most jobs seen for Python are for web or database administration. Java, mostly logistics firms, database administration and engineering.

_________________I come from the net. Through systems, peoples and cities to this place.

I still imagine it's easier to get into assembly after learning a higher level language than to have no programing experience, or do you still have to start from scratch?

I would both agree and disagree with this assessment (re: "easier to get into assembly after learning a higher level language"). I can only speak for myself (where I started with Applesoft BASIC for a few months, then 65c02/machine language, then 65816, then x86 and Pascal, then C and Perl):

If you learn assembly first, you have a better understanding of how the actual CPU works at (almost) its lowest layer. (I am not going to sperglord, but I say "almost" because present-day x86/x64 CPUs have microcode, and then there's also the actual hardware layer. PLEASE DO NOT FOCUS ON THIS). However, when moving to a higher-level language, you find yourself asking questions like "I wonder how they implemented that in assembly", pondering how many cycles are potentially wasted, etc.

However, the other way around: if you learn a higher-level language first (ex. Ruby, Python, Go, whatever the current hipster trend garbage is), you have literally no understanding of how the CPU works. All you're given is a bunch of functions/methods/whatever that "do things" and "magic stuff happens!" What's going on deep under the hood (at the CPU level) is completely different. An example I use is mentioning whatever function "finds the first occurrence of character 'x' within a string". Good C programmers will know strchr() and what it actually is doing (iterating over the memory byte by byte, doing a comparison and incrementing a counter, then returning that counter value if the comparison is true, otherwise return NULL), but higher-level language programmers often have no clue. If you try to explain to them that the CPU is doing this, they look almost dumbfounded, like this kind of "What? Nah, surely it's not that arcane/cryptic" expression. Another good one is types (character vs. string vs. signed integer vs. unsigned integer vs. boolean), and a more evil one is data structures. Many think the CPU at the lowest level comprehends all of this, like somehow the CPU "truly understands" these different types of data: most CPUs don't (the IBM S/360 might be an exception -- a damn CPU that has instructions that handle UTF-8!). Data is data -- the CPU doesn't care. The delineation is how the assembly code is written to comprehend said numbers/types/structures. All of this is "black magic voodoo" to people, especially "web programmers".

We assembly guys look at shit like JavaScript and go "my god, I can't even imagine how many CPU cycles are wasted on all this abstraction and nonsense". Good C folks tend to be able to make pretty good guesses at what's going on at the layer underneath, but programmers exclusively using other PLs (again, especially "web people")? Objects? Fucking hilarious.

If you learn assembly first, you have a better understanding of how the actual CPU works at (almost) its lowest layer. (I am not going to sperglord, but I say "almost" because present-day x86/x64 CPUs have microcode, and then there's also the actual hardware layer. PLEASE DO NOT FOCUS ON THIS).

In other words: Assembly language is a human-readable encoding of machine language, which is the lowest user-serviceable level.

Quote:

We assembly guys look at shit like JavaScript and go "my god, I can't even imagine how many CPU cycles are wasted on all this abstraction and nonsense". Good C folks tend to be able to make pretty good guesses at what's going on at the layer underneath, but programmers exclusively using other PLs (again, especially "web people")? Objects? Fucking hilarious.

Even C++ polymorphism is somewhat predictable because of how every relevant compiler implements virtual dispatch through a "vtable". Polymorphism in assembly language programs ends up looking similar.

@koitsu I think I kind of get it; you will have a harder or easier time based on what language you're using. I was surprised some people would have an even harder time than if they didn't know anything, but it makes sense to me. People would have to unlearn stuff that they would assume is actually interacting with the CPU, but is really just abstraction. I wouldn't even be surprised if some people weren't even aware of what abstraction in this context is, as if the CPU can somehow read "printf("Hello World");". I really don't know much about high level programming languages (I don't plan on making this my job, as I now understand that programming 30 years ago is not what it is now; I will keep low level programming as a hobby though) but I imagine that many of them would fall apart if you were doing something that they weren't "intended" to do. I thought I heard that BASIC is like this, and is why it isn't used anywhere outside of a high school programming course, if it is even taught anymore.

> For PNG / PCX / SNES conversions I get the impression that everyone uses their own tool :p

Yeah, it takes like two minutes to write a PNG <-> SNES tiledata conversion tool.

I tried to make a tool (named mosaic) that let you program a delcarative syntax for transforming tiledata, and the syntax files would allow conversion in both directions. It was flexible enough to support almost any zany tile data layout in memory.

It turned out to be harder to remember how the syntax worked than to just hand-make the conversion tools on demand whenever I need them.

Who is online

Users browsing this forum: No registered users and 6 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum