It is currently Thu Jul 19, 2018 8:25 pm

All times are UTC - 7 hours



Forum rules


Related:



Post new topic Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3
Author Message
PostPosted: Fri Mar 30, 2018 5:42 am 
Offline

Joined: Wed Jul 09, 2008 8:46 pm
Posts: 253
It looks like you're missing some DSP register initialization. Specifically...
- Zero out the two echo volume registers ($2C and $3C)
- Zero out pitch modulation ($2D)
These two will guarantee your sound plays back fine every time you start up the game.

Here is my patch as a series of PAR (Pro Action Replay) codes...

9080ED20
9080EE8F
9080EF2C
9080F0F2
9080F18F
9080F200
9080F3F3
9080F48F
9080F53C
9080F6F2
9080F78F
9080F800
9080F9F3
9080FA8F
9080FB2D
9080FCF2
9080FD8F
9080FE00
9080FFF3
8081D9ED
8081DA02


Top
 Profile  
 
PostPosted: Fri Mar 30, 2018 11:51 am 
Offline
User avatar

Joined: Thu Oct 26, 2017 12:29 pm
Posts: 30
Ah! Thank you so much!
I thought it had something to do with my initializing routine timing out or something similar.

I'm surprised that bsnes don't emulate this at all.
In fact, I had found a couple of things more that bsnes don't emulate.
1. Chaging color out of vblank causes color glitches.
2. Polling pad during vblank causes wrong polls. (This is emulated by no$cash.)

I'm using a 2016 debug version, so that may be it? :?

Anyway, thank you again.

What did you think of the demo overall?

_________________
...


Top
 Profile  
 
PostPosted: Fri Mar 30, 2018 2:42 pm 
Offline

Joined: Sat Apr 25, 2015 1:47 pm
Posts: 393
Location: FL
olddb wrote:
1. Chaging color out of vblank causes color glitches.

bsnes' "accuracy" profile does indeed emulate this, which you should be using for development if at all possible.

Quote:
2. Polling pad during vblank causes wrong polls.

Only during the 3 scanlines in which the auto joypad readout is in progress. $4218+ can be read correctly at any time when the lowest bit of $4212 is clear. (newer higan emulates this, bsnes-plus v4 will also)


Top
 Profile  
 
PostPosted: Fri Mar 30, 2018 3:08 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3434
Location: Mountain View, CA
Revenant wrote:
olddb wrote:
2. Polling pad during vblank causes wrong polls.

Only during the 3 scanlines in which the auto joypad readout is in progress. $4218+ can be read correctly at any time when the lowest bit of $4212 is clear. (newer higan emulates this, bsnes-plus v4 will also)

I've attached official manual references for these statements (this is for olddb's benefit). Note the description of $4200 bit 0 and $4212 bit 0. I'm also including caution #16 which covers some edge cases as well.

Attachment:
4200.png
4200.png [ 88.32 KiB | Viewed 1028 times ]

Attachment:
4212.png
4212.png [ 72.21 KiB | Viewed 1028 times ]

Attachment:
caution16.png
caution16.png [ 351.72 KiB | Viewed 1028 times ]


Top
 Profile  
 
PostPosted: Fri Mar 30, 2018 4:08 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20273
Location: NE Indiana, USA (NTSC)
In my own words:
Code:
7654 3210  NMITIMEN ($4200)
| ||    +- Enable automatic reading of standard controller to $4218-F
| ||       0: disable; 1: enable
| ||       Note: It takes about 3 or 4 scanlines after the start of
| ||       vblank to complete the read.
| |+------ Horizontal timer enable
| +------- Vertical timer enable
|          00: Disable H and V
|          01: Enable H. IRQ fires at hcount value.
|          10: Enable V. IRQ fires at vcount value.
|          11: Enable H and V. IRQ fires at both hcount and vcount value.
+--------- Enable NMI when vblank begins.  Disabled at reset.
           0: disable; 1: enable

7654 3210  HVBJOY ($4212)
||      +- Status of automatic reading of standard controller
||         0: Completed or not enabled; 1: Busy
|+-------- Horizontal blanking period status
|          0: Not in hblank; 1: In hblank
+--------- Vertical blanking period status
           0: Not in vblank; 1: In vblank

Caution: When starting to read the controller, it may take up to 3 fields (50 ms) for some third-party controllers to wake up and return updated input. During this period, they return previous input, which may cause poorly designed game loops to see spurious presses as if the buttons had been held throughout the period when the controller was not read. This can be worked around in either of two ways:

A. Edge detection: Calculate which buttons were pressed in this frame and not in the last one. This can be calculated as cur_keys & (last_keys ^ $FFFF) or as cur_keys & (last_keys ^ cur_keys). My code since Concentration Room (2009) calls this the new_keys mechanism.

B. Ignore data from automatic reading for at least 3 fields. For example, a program may turn on automatic reading, start a palette fade effect, and then once the fade completes, start paying attention to the data in $4218-F.


Top
 Profile  
 
PostPosted: Fri Mar 30, 2018 6:14 pm 
Offline

Joined: Mon Dec 11, 2017 4:01 pm
Posts: 28
Thanks a lot for releasing a demo!

I've been playing it for about 20 minutes, and here's my feedback so far.

First of all, congratulations for the project. I'm totally impressed by your demo, it feels like the basis of a commercial-grade game (much like Anguna on GBA).

The graphics are beautiful, the music is cool, and the engine / core gameplay is solid. You successfully recreated the whole gameplay of the "Secret of" games, up to the famous ring menu. I was astounded to find that everything is working: changing characters, getting new weapons, setting the AI of the "following" character, trading weapons between characters, dialog system with PNJ, enemies, saving/loading, etc. The scrolling system is also very well done. Kudos, all of this is really impressive.
I can not imagine how long you have spent coding all this.

The game is also quite challenging in its current state, with quite a lot of maps / content for a first demo. I managed to recruit the "sorceress" character, but I didn't find anywhere to go after that: is this the end of the demo, or is there any additional content that I missed?

I also have some suggestions / personal feedback that may or may not help you:

- I find that the player character moves too slowly. I died 3 times in the demo and had to start it all over again, and, in my third attempt, I really wished that there was "run" button (like in Secret of Mana) to run through the maps I already explored. Also, the enemies moves way faster than the player, so it's really hard to avoid them when they attack you. Personally, I would increase the "walking speed" instead of adding a running button, so we can both avoid them more easily and have more fun exploring the maps.

- There is a slight delay between the "attack" button and the actual attacking frame. It makes the player vulnerable during a short windows every time he attacks, due to the animation frame where the hero "charges" his punch / sword / dagger attack. I'll remove this frame to display the "sword / dagger / punch" frame instantly after a button press, or at least I'll reduce its duration, because it feels too slow for me in this demo.

- The sprites (PNJ, enemies, chests) appears / disappears from the screen before being actually "out of the screen". I think that you only test their top-left position after a scrolling to check whether they need to be displayed / hidden. That leads to some "sprites teleportation" sometimes. It's a not deal breaker, but it'll look more polished if the sprites actually went offscreen before being hidden :).

- I won't spoil it for everyone else, but I did enjoy the little "puzzle" in this demo (it took me some time to figure it out how to go to screen where you can recruit the sorceress :))

P.S.: I tested in on BSNES set in PAL (50Hz) mode, without any particular filter.

Once again, congrats for all the great work. I really hope you can complete it in 2018. We got Sydney Hunter a few days ago, so if we also have your game released too, that'll be a very good year for SNES homebrews!


Top
 Profile  
 
PostPosted: Sat Mar 31, 2018 11:31 am 
Offline
User avatar

Joined: Thu Oct 26, 2017 12:29 pm
Posts: 30
@Revenant
@koitsu
@tepples

Thank you for the info. This is very helpful.

@drludos

Thank you for your time. I know not anyone is up to playing uncompleted games like this.

Quote:
The game is also quite challenging in its current state, with quite a lot of maps / content for a first demo. I managed to recruit the "sorceress" character, but I didn't find anywhere to go after that: is this the end of the demo, or is there any additional content that I missed?


You did everything you could in the demo.

Quote:
I find that the player character moves too slowly. I died 3 times in the demo and had to start it all over again, and, in my third attempt, I really wished that there was "run" button (like in Secret of Mana) to run through the maps I already explored. Also, the enemies moves way faster than the player, so it's really hard to avoid them when they attack you. Personally, I would increase the "walking speed" instead of adding a running button, so we can both avoid them more easily and have more fun exploring the maps.


I will have to test the walking faster. I never though of that. As for a running button, it's already coded. I disable it before releasing the demo mainly for two reasons: 1) The running animations are no completed 2) The demo can be breezed easily with it.
The running I implemented is similar the boots in Zelda 3 (SNES), where once you press the button the character goes in a straight line and can't attack while running. I find that a 'normal running button' (like Chrono Trigger) gives the player too much advantage against enemies.

Also, keep in mind that I plan on adding weapons that will greatly influence the player interaction with the enemies. For example, the shield (which its overpowered in its current state [not in the demo]) or the whip, which will allow you to pull enemies towards you.

Also, there is no magic in the demo.

I guess what I'm trying to say is that, I'm more concern about the game being too easy than it being too hard.

Quote:
- There is a slight delay between the "attack" button and the actual attacking frame. It makes the player vulnerable during a short windows every time he attacks, due to the animation frame where the hero "charges" his punch / sword / dagger attack. I'll remove this frame to display the "sword / dagger / punch" frame instantly after a button press, or at least I'll reduce its duration, because it feels too slow for me in this demo.


Thank you for this.
As in right now, the attack animation is 24 frames. You can only inflict damage in the last 8. I need to change this.
I'm thinking of doing a system a system where different weapons have different startup-lag.
For example, the sword can keep the 24 frame system, but the dagger can be quicker. The axe could have even more startup time than the sword.
This way players may use the weapon the feel more comfortable with.

Another thing I may need to change is that enemies are completely invulnerable while attacking, even in their startup frames. I changed this recently to make the demo harder. I may need to tweak this.

Quote:
- The sprites (PNJ, enemies, chests) appears / disappears from the screen before being actually "out of the screen". I think that you only test their top-left position after a scrolling to check whether they need to be displayed / hidden. That leads to some "sprites teleportation" sometimes. It's a not deal breaker, but it'll look more polished if the sprites actually went offscreen before being hidden :).


I know what you mean. This will be in the top of my priorities.

Once again, thank you for your comments and time. Very helpful.

_________________
...


Top
 Profile  
 
PostPosted: Sat Mar 31, 2018 12:40 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6416
Location: Canada
Wasn't sure if it was noted above, but the treasure chest appears to have a position that is delayed by one frame, i.e. while it's scrolling it will be one frame behind in position but catches up when I stop. This might apply to other sprites as well, but it's noticeable with the chest because it doesn't move.

I'm confused though, about the scope of the ROM. I was only able to find 4 screens, and no new characters? Maybe I missed something... will play again later.


Top
 Profile  
 
PostPosted: Sat Mar 31, 2018 3:48 pm 
Offline
User avatar

Joined: Mon Jan 23, 2006 7:47 am
Posts: 117
olddb wrote:
I find that a 'normal running button' (like Chrono Trigger) gives the player too much advantage against enemies.

Then I'd make the enemies more challenging, instead of restricting the player's abilities. The latter is much more frustrating.

(This is why I like playing Super Metroid much more than the Mega Man games, for example.)


Last edited by creaothceann on Sat Mar 31, 2018 11:35 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sat Mar 31, 2018 10:12 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6416
Location: Canada
Tried a second time, and figured out where to go to continue. I'd missed a gap in the side of one of the maps.

Anyhow, cool demo, best of luck with the rest.


Top
 Profile  
 
PostPosted: Sun Apr 01, 2018 7:30 pm 
Offline
User avatar

Joined: Thu Oct 26, 2017 12:29 pm
Posts: 30
@creaothceann
Interesting take.

@rainwarrior

Thank you.

_________________
...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 41 posts ]  Go to page Previous  1, 2, 3

All times are UTC - 7 hours


Who is online

Users browsing this forum: Markfrizb and 4 guests


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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group