Author Topic: So then...what sucks about Mysterious Song?  (Read 3193 times)

Arkhan

  • Hero Member
  • *****
  • Posts: 14142
  • Fuck Elmer.
    • Incessant Negativity Software
Re: So then...what sucks about Mysterious Song?
« Reply #30 on: November 21, 2009, 08:12:39 PM »
most of the time I find that going to gamefaqs for serious conversation is like going to a meth lab to talk ethics.
[Fri 19:34]<nectarsis> been wanting to try that one for awhile now Ope
[Fri 19:33]<Opethian> l;ol huge dong

I'm a max level Forum Warrior.  I'm immortal.
If you're not ready to defend your claims, don't post em.

Tatsujin

  • Hero Member
  • *****
  • Posts: 12311
Re: So then...what sucks about Mysterious Song?
« Reply #31 on: November 21, 2009, 08:15:47 PM »
flee :lol:
www.pcedaisakusen.net
the home of your individual PC Engine collection!!
PCE Games coundown: 690/737 (47 to go or 93.6% clear)
PCE Shmups countdown: 111/111 (all clear!!)
Sega does what Nintendon't, but only NEC does better than both together!^^

Arkhan

  • Hero Member
  • *****
  • Posts: 14142
  • Fuck Elmer.
    • Incessant Negativity Software
Re: So then...what sucks about Mysterious Song?
« Reply #32 on: November 21, 2009, 09:04:27 PM »
flee :lol:

AN EPICFAIL IS APPROACHING!!!

[ul][li]Attack[/li][li]Magic[/li][li]Defend[/li][li]Flee![/li][/ul]

:)

its gamefaqs!
« Last Edit: November 21, 2009, 09:30:24 PM by Arkhan »
[Fri 19:34]<nectarsis> been wanting to try that one for awhile now Ope
[Fri 19:33]<Opethian> l;ol huge dong

I'm a max level Forum Warrior.  I'm immortal.
If you're not ready to defend your claims, don't post em.

hcf

  • Jr. Member
  • **
  • Posts: 93
Re: So then...what sucks about Mysterious Song?
« Reply #33 on: November 23, 2009, 02:04:11 AM »
C doesn't cut it for PCE. And even basic ASM knowledge really isn't enough if you're trying to push the system.

Genesis on the other hand, has a processor built for C.

Tom, I am going to make a comment that is totally off-topic, but I have a lot of curiosity about your post. Why did you say that C doesn't cut it for PCE, and Genesis does? I know that you have done lots of works for the PC Engine, and I would like to know your experiences...

I ask this because I have made a couple of things with HuC, and in fact I have been surprised by this wonderful C compiler. What things does Genesis have and PC Engine does not have, as far as C programming is related? Are you talking about things like using bidimensional arrays (they don't exist in HuC) or similar things? Or maybe you are speaking about things at a lower level?

Please, keep in mind that I am not trying to create a flame. In fact, I admire you as an expert PC Engine programmer and I would love to hear your opinion, because I am starting to use HuC (I have worked one year with it and I only have done very simple things) and I would like to know what things will be difficult to do with it, and why Genesis has an advantage.

And... sorry for the off-topic  :wink:

nodtveidt

  • Guest
Re: So then...what sucks about Mysterious Song?
« Reply #34 on: November 23, 2009, 02:41:07 AM »
It has to do with the CPU. The 6502 and its descendants, including the HuC6280 and the 65816, are much better suited to assembly than C, but the 68000's design is better suited to a C compiler. It seems to be harder to write an optimizing C compiler for a 6502-based CPU than a 68000 CPU just because of the difference in architectures. In order to take full advantage of a 6502-based CPU, you have to know its design very well and write highly efficient assembly code; any slouch can code C for the 68000 and get decent results.

hcf

  • Jr. Member
  • **
  • Posts: 93
Re: So then...what sucks about Mysterious Song?
« Reply #35 on: November 23, 2009, 02:59:32 AM »
Oh, I think that I understand. Thank you for your response!!  :D

Arjak

  • Hero Member
  • *****
  • Posts: 777
Re: So then...what sucks about Mysterious Song?
« Reply #36 on: November 24, 2009, 05:04:50 AM »
I like the new battle background. The originals were dithered beyond belief. I think this is a good idea. I cannot comment on anything else, though, as I have not played the game. :wink:
He who dings the Gunhed must PAAAAY!!! -Ninja Spirit

blueraven

  • Hero Member
  • *****
  • Posts: 4450
Re: So then...what sucks about Mysterious Song?
« Reply #37 on: November 24, 2009, 07:06:44 AM »
most of the time I find that going to gamefaqs for serious conversation is like going to a meth lab to talk ethics.

hahahahhahahahahhahahahahhahahahahahha

*falls out of chair*

hahahhaa
[Thu 10:04] <Tatsujin> hasd a pasrtty asnd a after pasrty ASDFTERTHE PARTY
[Fri 22:47] <Tatsujin> CLOSE FIGHTING STREET; CLOSE FORU; CLOSE INTERNETZ; CLOSE WORLD; CLOSE UNIVERSUM
--
Arkhan [05:15pm]: ill brbl im going to go make another free game noone plays lolol

guyjin

  • Hero Member
  • *****
  • Posts: 3896
Re: So then...what sucks about Mysterious Song?
« Reply #38 on: November 24, 2009, 07:14:33 AM »
most of the time I find that going to gamefaqs for serious conversation is like going to a meth lab to talk ethics.

QFT  :clap: :clap: :clap:
"Fun is a strong word." - SNK
"Today, people do all kind of shit." - Tatsujin

Joe Redifer

  • Hero Member
  • *****
  • Posts: 8178
Re: So then...what sucks about Mysterious Song?
« Reply #39 on: November 24, 2009, 10:28:55 AM »
Since it is being asked for, I will give my opinion:

I do not care for the graphics at all.  They look like a very, VERY early HuCard game. The new battle background posted in this thread looks a little better, but still kind of generic... it could be from nearly any RPG.  I noticed screen tearing during the fade-ins and outs in the demo.

From what I recall from playing the demo, the game seemed to move very slow.  Talking to NPCs didn't happen as smoothly as it does in other RPGs.  I realize the game wasn't finished at the time, so these things could very well have changed.  A run button might help.  The demo also kept crashing on me.

This is the most minor complaint:  The game is a port of some other game from some other platform.  I'd like to see something original that nobody has played before.

Tom

  • Guest
Re: So then...what sucks about Mysterious Song?
« Reply #40 on: November 24, 2009, 10:40:44 AM »
I noticed screen tearing during the fade-ins and outs in the demo.

 That should be fixed. I wrote a special fader in asm to replace the C code.

Necromancer

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 21335
Re: So then...what sucks about Mysterious Song?
« Reply #41 on: November 24, 2009, 11:08:09 AM »
A run button might help.

There is one, silly.  It's right next to the Select button.  :P

Seriously, running has been implemented, though I wouldn't mind if it was a menu option rather than a button.

I'd like to see something original that nobody has played before.

It's all new for everyone except the handful of Turbonauts that have also played the PC game.  For that select group, there's still a few all new chunks.  :wink:
U.S. Collection: 97% complete    155/159 titles

Tom

  • Guest
Re: So then...what sucks about Mysterious Song?
« Reply #42 on: November 24, 2009, 11:33:56 AM »
C doesn't cut it for PCE. And even basic ASM knowledge really isn't enough if you're trying to push the system.

Genesis on the other hand, has a processor built for C.

Tom, I am going to make a comment that is totally off-topic, but I have a lot of curiosity about your post. Why did you say that C doesn't cut it for PCE, and Genesis does? I know that you have done lots of works for the PC Engine, and I would like to know your experiences...

 The most important thing is the processor opcodes. On the 68k, the opcodes are fairly slow - but you can do alot quite a bit in a single opcode. It has a very powerful set of opcodes. And it has a ton of addressing modes too. Probably more than I've seen for any other processor. It makes for relative addressing (dynamically moving the code into a certain address range and not having to worry about hard offsets or recompiling) really easy. The 68k also has native flat memory model. There is no far or near data. A lot of C operations translation nicely into the 68k opcode set. That's a HUGE advantage.

 This isn't the case with the 65x architecture. It's more like RISC in this regard. You have simple, but very fast instructions. Speed comes from optimizing for near data, removing redundant steps or combing steps that fit within the instruction set design (more so that most processors because the instruction set is so simple). The down side is, that most RISC have 32bit instructions to help it along. This oftens means reorganizing your data in certain ways to gain speed, or doing out of order execution to remove redundant steps. C just isn't made for 65x arch. Most of the time, you have a macro layer between C and the assembler - just because it's soo complex to build out for. These macros act like normal instructions, instructions that don't exist on the 65x. Which means you get very non optimized assembly built from this C. 

 HuC itself has a whole slew of problems that go way beyond it just being a variant of C (it's small C). HuC has a lot of missing support for far data. It's impossible to pass a far data pointer to a user function, and then to an internal lib function that uses it - in huc. That's a huge problem for design. You have to make sure you use *direct* labels for functions that support far data, which limits the flexibility of the language. C is all about pointers. Or.. make sure you include any near data first in the list (first come, first serve). But that's only 8k. HuC is probably more CD friendly because of this. Making a serious hucard project would be even worse. Because you'd have tons of far data, where as on a CD project - you can load near data from the CD for different areas/levels/etc.


Quote
I ask this because I have made a couple of things with HuC, and in fact I have been surprised by this wonderful C compiler. What things does Genesis have and PC Engine does not have, as far as C programming is related? Are you talking about things like using bidimensional arrays (they don't exist in HuC) or similar things? Or maybe you are speaking about things at a lower level?

 Well, you have real C with the Genesis via GCC. HuC is Small C with some hacking for limited far data support for *some* lib functions. HuC really was made for computers that only had 64k of address space. HuC is fine, until you start to run into its limitations. Really slow static and dynamic pointer support, really slow shift function, nothing bigger than 16bit integers (16bit, 24bit and 32bit fixed point data types would be great as well), no real optimization option for the compiler, mostly restricted to near data access, only a small amount of ram/rom for user functions and main, opcodes can't land the middle of a bank boundary (this is an assembler problem). And to top it off, HuC totally ignores all the address vectors of zeropage. It treats a few as normal address regs, loading and unloading like it would any other processor. When really, it should be leaving them in memory. And finally, all internal data types for user define functions use a custom stack to access (it creates and destroys them on every function call). The 65x processor doesn't have direct support for this kind of address modes. So it uses a slow manual method everything it needs to read/write to that data type. Which probably wouldn't be so bad if the regs and bus weren't 8bit. The only way around this is to declare all data types as global and you know how much of a mess that can be. HuC has some serious limitations. HuC was never intended for *any* type of serious project. It was meant for *very* basic stuff. And as a stepping board to get people into assembly. Learn the hardware with HuC, then move onto assembly. The people who modified the original Small C compiler (it dates from 1983) have said so themselves. In my eyes, it's equivalent to BASIC for the most part (the limitations and the speed). And like BASIC, anything you can offset to inline ASM is where you get your speed back. But it begs the question, if a lot of it is going to be ASM functions - why even use C at all? Why not just fully optimize for assembly for some real speed ;)


nodtveidt

  • Guest
Re: So then...what sucks about Mysterious Song?
« Reply #43 on: November 24, 2009, 12:47:46 PM »
The demo is freakin' ANCIENT. I don't think that's even Beta 1 quality, and we've come a hell of a long way since then. Running was implemented long ago, snow was eliminated recently (low priority issue), and crash issues were related to an active callback function which has since been eliminated. Also, people using CDRs to play the game are going to have major problems due to the large amount of code and data to copy to system RAM. That's why it has to be pressed to begin with, aside from the fact that a lot of people asked for it.

As for original stuff...once MSR is released, we're going to unveil our first 100% original game, and perhaps some of the other 100% original projects we've got brewing in the background, out of the public eye. Keep in mind that MSR was merely a solo project that I started myself to get back into PCE development; it was never intended to be a full-blown production, but since it now is, well...it is what it is.

As an add-on to Tom's post...not only is HuC generally rather slow, but rather big as well. Code generation is rather generic and can be quite redundant, bloating the f*ck out of the assembly listing. There are plenty of ways around it though, and I personally have spent much of the last few years learning ways to fool the code generator into producing code that's not so large, and to get some speed boosts as well. As a result, I've been able to pull off decent platform game engines with ease that zip along quite nicely even with lots of objects on-screen. Of course, come N3 time, the game will be written in 100% assembly language; the old HuC-based game engine has already been thrown away. My own epic RPG, which is also 100% original, will be done in pure assembly as well.

hcf

  • Jr. Member
  • **
  • Posts: 93
Re: So then...what sucks about Mysterious Song?
« Reply #44 on: November 24, 2009, 09:23:13 PM »
Tom, thank you very much for taking the time to write that fantastic explanation!! I think that I understood it well, and I have learnt a lot of things  :clap:

I think that I can answer your last question "why even use C at all?". From my point of view... because there are people (like me) who are total boneheads as far as assembly programming is related, but we are decent C programmers. C is easy to learn for almost everybody, and assembly... is easy only for some people.

I am not able to create a game in ASM, but I am able to create a game in HuC using C (and I create it very quickly!!). You are right: these will be very basic games, but sometimes this is enough (like the "Monkey Catcher" game that I made for my little daughter). In fact, when I discovered (thanks to a very nice person from the Frozenutopia team) the option of making overlays in the CD games, I saw a huge potential that I was not using in HuC before that.

So, my opinion is that HuC is usefull indeed if you are not trying to create an "Akumajo Dracula X: Rondo of blood 2", and you have enough with creating a more basic game, and you need to do it quickly. Of course, using ASM is mandatory in a professional game like Mysterious Song  :D

Thank you again for your fantastic explanation!!