Jump to content
IGNORED

Spire of the Ancients (WIP)


SmittyB

Recommended Posts

I'll likely rely on people testing a lot of things for me when it comes to things I can't test properly with emulation.

I've been thinking about how to implement saving. I think I'll keep it simple so that if it detects a high score cartridge you get the option of new game or continue and either way it saves if you die or reset (by pausing and pressing reset because reset doubles as an item selection). I've made things a little more stable in PAL by moving the objects and enemies logic to the second frame away from all the tile checking and copying that creates the bulk of the display. I'm currently rewriting the object loop in assembly to keep things smoother as I add in more object types and have more objects per map in general. I imagine that eventually I'll end up rewriting most of the loops to get things going.

I think I can get around the black / white flicker when using 'AdjustVisible' to free up screen time spent in the HUD by inverting the colours so that the black is background and the white is foreground.

 

Still a mess in NTSC.

Link to comment
Share on other sites

Still a mess in NTSC.

 

...he lied....

 

I've just managed to make this build a bit more stable in NTSC.

 

I'm getting some annoying rubbish under the HUD. It's always been there but only when there's a wall on the right side. I think it's where it's taking a couple of lines to change to the right character set. Maybe I'll see if I can do something with the palette to give me some time for a cleaner transition between the two by hiding a couple of lines.

I've noticed that it mostly flickers when specific frames of enemies are drawn so I think I'll need to be more careful with how many zones an object crosses. It's also making my background flicker somehow even though the background gradient is done by looping WSYNC for a number of lines then changing the colour with no extra logic. Is this an issue with the emulation or is the 7800 adding some internal delay by drawing multiple things on that line? If so maybe I can counter that somehow.

game.bas.a78

Edited by SmittyB
  • Like 4
Link to comment
Share on other sites

I've noticed that it mostly flickers when specific frames of enemies are drawn so I think I'll need to be more careful with how many zones an object crosses. It's also making my background flicker somehow even though the background gradient is done by looping WSYNC for a number of lines then changing the colour with no extra logic. Is this an issue with the emulation or is the 7800 adding some internal delay by drawing multiple things on that line? If so maybe I can counter that somehow.

When drawscreen completes, the commands after it execute at the top of the visible screen. Doing color changes with WSYNC relies on this behavior being consistent.

 

Unfortunately when there's too many draw objects for the 6502 to prepare for MARIA, the screen already starts without your program knowing it, which means your WSYNC colors get messed up.

 

You're correct that you can get more objects drawn if they're all zone aligned. When an object straddles 2 zones, even by just a pixel, it doubles the amount of prep that the 6502 has to do.

  • Like 3
Link to comment
Share on other sites

Essentially the same thing as before but with a correct NTSC palette for those who want to give it a try.

 

I've had an idea about the palette. Instead of having 6 fixed palettes for objects and things in the map, because I'm limiting myself to a maximum of 6 things on screen (3 objects, and 3 creatures) I could change the colours on the fly so each thing can specify its own colours. Might cause some extra problems but I'll give it a go.

game.bas.a78

  • Like 3
Link to comment
Share on other sites

Now..we could need a few levels :)

 

I've been putting off creating additional levels for now because as I add more level tiles I might end up restructuring things which would then mean I'd have to throw out the lot and rebuild them with the new sets. Also until I balance the combat mechanics and make the stats actually come into play things will be a little too easy. I have a good idea as to how I want the maps to feel but it will be hard to keep things interesting without any rooms but I can use Phantasy Star as a guide because it has the same limitation.

 

Also, my current wall tiles are very inefficient in terms of reusing tiles. I'm likely going to redraw the walls with simplistic colouring so that I can have more variation in the same level as the current wall graphics take up almost the entire 256 tile limit

Edited by SmittyB
  • Like 1
Link to comment
Share on other sites

Tried on ntsc works. Sometimes cant turn left and right and if I use the select and reset to select certain items it crashes.

This is with the concerto tho. That can have alot to do with it...

The graphocs look nice no flickering. There are two bad guys a slime and a invisible blue outlined ghost guy?

It is loading as a supergame

Link to comment
Share on other sites

Here's the current bin.

 

I don't know why you would have problems turning left or right unless the movement delay hasn't run out. If it's not moving when you hold left or right then that's a problem I've not seen or understand why that's happening.

Similarly with the item selection it's not something I've seen. Does it happen with specific items or combinations?

 

On the other hand if you're saying you're not getting flicker then that would mean the actual hardware is being more forgiving than the emulation for once.

 

I don't know what a supergame is but it's set as a 48k cartridge and I've enabled HSC support if thats it.

game.bas.bin

  • Like 1
Link to comment
Share on other sites

Ok tried again and never have problems turning. After dying two of three times if I but slot one a book and two the sword and press the left fire button would crash the game. Are the items supposed to do anything different right now? The only thing that seems to work if the sword attack. There seems to be purplish in the status bar around the text letters. Perhaps that is my tv? I had the same issue with another text adventure demo I tried. Going to try screwing with the settings.

Link to comment
Share on other sites

At the moment the only items that do anything are the sword, the hammer which is slower but does more damage, the boot which acts as a run button, and the HP up which spend MP to replace HP.

 

I'll see if I can replicate that problem. Hopefully I can fix it.

 

The colour in the HUD will be your TV. I've even turned off the colourburst for the HUD so the text should be as clear as the 7800 can output.

 

Speaking of dying, when you die do the colours fade out before restarting? When emulating they do in prosystem but not MAME so I'm not sure what the actual hardware does.

Link to comment
Share on other sites

At the moment the only items that do anything are the sword, the hammer which is slower but does more damage, the boot which acts as a run button, and the HP up which spend MP to replace HP.

 

I'll see if I can replicate that problem. Hopefully I can fix it.

 

The colour in the HUD will be your TV. I've even turned off the colourburst for the HUD so the text should be as clear as the 7800 can output.

 

Speaking of dying, when you die do the colours fade out before restarting? When emulating they do in prosystem but not MAME so I'm not sure what the actual hardware does.

 

I'm going to give the latest binary a whirl via the MCPDev cart; unfortunately, it will likely not occur until this weekend.

 

The ProSystem emulator is very 'generous' with hardware timings, while MAME is very close to hardware exact.

 

Although not definite yet, I'd bet dollars to doughnuts with a difference in game behavior between ProSystem and MAME, MAME is likely providing the near exact, if not exact behavior of the actual hardware.

Link to comment
Share on other sites

I think I've fixed the crash caused by using items. It was a simple issue of bad labelling. What was happening was that when left items were used it would reset the delay for the right item, then potentially jump back into the checks for the right item, then fall into the checks for the left item, then jump back to the right.

 

I'll see about rewriting the game over palette fade because right now it's a whole mess of "if P0C1&%00001111 >0 then P0C1 = P0C1-1" which I don't imagine gets converted to assembly nicely. I suppose another option would be to kill the colour for the screen, set the high nibble to zeroes, then compare each palette entry against zero while looping.

 

I'll not be able to do much more in the next couple of days so here's the fixed build for those who want to play around with it. I'm also very open to suggestions if you think there's something I'm not doing that could improve things or other details that seem off. I'm considering rethinking the perspective of the gaps that are 1 in front of the player as it looks as if you should be able to see things around the corner. Essentially while I'm simplifying the walls to make better use of tiles I'll likely squarify things and likely give the impression of a shorter viewing distance in the process. Compare the gap in the 'Walls - Garden' test against the 'Walls - Perspective Test'.

game.bas.bin

game.bas.a78

post-27819-0-14580800-1488322976_thumb.png

post-27819-0-37774600-1488322980_thumb.png

  • Like 3
Link to comment
Share on other sites

[...]I'll see about rewriting the game over palette fade because right now it's a whole mess of "if P0C1&%00001111 >0 then P0C1 = P0C1-1" which I don't imagine gets converted to assembly nicely.[...]

The Palette P#C# registers are write-only. "P0C1=P0C1-1" requires a read of P0C1, so it doesn't work as expected. Use some variables for the color values instead, set the registers to the variable values post-modification, and you should be fine.

 

Someone please get Trebor some doughnuts!

  • Like 2
Link to comment
Share on other sites

I've fixed the fading, and at the same time reorganised the memory so that I've freed up enough space for possibly more than 16 objects per map.

 

I've been playing around with the perspective of the walls and I think I've come up with something better than what I have now. It means I'll have to throw out and redo the walls and tilemaps I have but as I said I'll be drawing simpler wall graphics to save space. With more wall graphics I can draw more objects to fit and with more objects I can build more levels, rebalance the combat, then surprise, a finished game.

post-27819-0-13659000-1488661369_thumb.png

  • Like 5
Link to comment
Share on other sites

  • 2 weeks later...

Suddenly updates!

 

There's now a couple of extra maps you can move back and forth between, the wall graphics have all been updated, and I've been making small improvements to how things work in the background.

You can now additionally use the left and right directions on the second joystick to switch items.

Other than the walls and pressure plates a lot of the graphics won't look correct for a while, I'll have to redraw a few things to correct for the different scales.

game.bas.bin

game.bas.a78

post-27819-0-57020300-1489849726_thumb.png

  • Like 7
Link to comment
Share on other sites

You can now additionally use the left and right directions on the second joystick to switch items.

 

Wow! this game looks great!

 

Since you are using the second joystick for additional options/actions (switching items) have you given any thought to "Video Touch Pad" support? Of course I have no idea how hard that would be and I'm not sure how many additional options/actions are needed for game play. Just an idea.

 

Awesome game! I can't wait to see the finished product.

Link to comment
Share on other sites

 

Have you given any thought to "Video Touch Pad" support?

 

An interesting thought but I'd have to learn how to program it first so it's not a priority but maybe down the line.

 

Also I forgot to mention I've also got rid of the small graphical problem under the HUD.

I realised that I can't think of a single 8-bit realtime dungeon crawler. All the ones I can think of are Wizardry clones with random encounters. It would be pretty exciting to release the very first.

Edited by SmittyB
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...