Jump to content
IGNORED

Spire of the Ancients (WIP)


SmittyB

Recommended Posts

Hi Smitty

 

played around with it on my Concerto cart.A 2nd joystick

works well,but the keyboard....not.

I tried the original keyboard,the Star Raiders touchpad

and the Kid controller.None of these works....

but the game is great.

greetings Walter

Glad the game itself works nicely on hardware but I guess I'll have to go back to the drawing board with keypad support. Maybe I've just missed something small or maybe it just won't work at all but I'll give it another go.

Link to comment
Share on other sites

The inescapable room directly in front of the start was going to be a level for testing objects and enemies but I haven't really added anything to it yet.

 

The map doesn't do anything yet and I'm not sure exactly how I'm going to implement it. It will show a very basic layout of the current room but I'm not sure if I'll show the entire room or x many tiles around the player. I don't want to give the player an easy way to spot secrets or see how some of the impossible geometry like 720 degree loops and moving rooms will be done. If I have enough memory left then a simple auto-map might work but it would have to be reset when leaving a room.

There are a lot of things where if I can, I will.

 

I think I've also fixed the keypad as it looks like I forgot to implement the debouncing timers that I use for different buttons so it was never enabled.

 

I've been doing some work on getting my pause routine working again. It seems to jump into the pause routine and then jump out again if you haven't let go of the button quickly enough. It used to work but I don't know when it broke.

 

I'll get to adding more of the objects, even if they're incomplete, just for people to have a look at and play around with.

  • Like 1
Link to comment
Share on other sites

Current version.

 

I've fixed the pausing. It turns out the issue was that I wasn't flipping the screen buffer during the pause routine so it would just speed through the timer and jump out of the loop before I could let go of the key.

I think the keypad should be working now, and I've put some more static objects in the room directly ahead of the start including the running boots item which adds to your inventory when you move into the same tile.

 

At the moment a lot of the new objects don't have scaling of any kind and the boots pickup doesn't disappear yet but it's a proof of concept for how items will work.

game.bas.a78

game.bas.bin

post-27819-0-67234100-1499808954_thumb.png

  • Like 4
Link to comment
Share on other sites

Curse this keyboard issue, back to the drawing board. I might try copying what I have into a 2600 program (if I can remember how to compile it) to make sure I'm not making some stupid mistake with the assembly.

 

I've rejiggered the way maps are loaded so I don't have to manually specify the data for each object, now I can include objects as part of the map data and preprocess it when the map loads to populate the object lists. I'll still have to specify extra info like which map to load for doors but it will make mapping much smoother.

  • Like 2
Link to comment
Share on other sites

Hey SmittyB, try disabling 2-button mode on the port you're trying to read the keypad through. At the very least, 7800 2-button mode is going to interfere with INPT4/5. Also be sure you wait 400us after setting the row, before you read the columns.

 

rem disable 2-button mode on 1st joy port... 
SWCHB=$ff:CTLSWB=$10:SWCHB=$00
rem disable 2-button mode on 2nd joy port...
 SWCHB=$ff:CTLSWB=$04:SWCHB=$00
  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Thanks to the new a7800 branch of MAME I have keypad support working, kinda, sorta. It's now possible to pause the game with a keypad plugged into the second controller port but the pause loop doesn't check the keypad at the moment so you still have to get up and walk over to the console to unpause it. I'm still troubleshooting why the other keys aren't working as I'd expect. Even if it's very partial support at the moment would this be the first 7800 game to support keypads and / or the first to use something other than the standard joystick?

 

Also I've been able to massively improve the way maps are loaded so level design is a lot quicker. The only time consuming bit is that I still have to hardcode which map and location doors go to but that's not too bad.

  • Like 3
Link to comment
Share on other sites

Even if it's very partial support at the moment would this be the first 7800 game to support keypads and / or the first to use something other than the standard joystick?

 

First 7800 game to support keypads, yes. First to use something other than the standard joysticks, no. Super Circus Atari Age allows joystick, paddles, or driving controllers to be utilized. Crazy Brix can utilize paddles or joystick controls. ;)

 

Of course, there are the original line of games supporting the light gun; however, presumption is those were excluded from the support pool being discussed. :)

  • Like 1
Link to comment
Share on other sites

I forgot about the light gun games even though I own them and the XE gun.

I'm glad that I got there first on keypads, I'll try and set the bar high for the improved experience of using one.

I think it is excellent your using the keypad. I have several of them and they are very common as came with star raiders.

There has not been any use for them as of late and would be a great option. Heck I feel every one player game should use it for pausing the game, selecting maps/inventory etc..

Link to comment
Share on other sites

I've got the right hand column working perfectly by reading INPT5 but when I try reading INPT3 or INPT2 it acts as if the keys on the other columns are stuck on.

Digging through the info I can find my guess is that it's something to do with INPT5 being a latched input and INPT3 and INPT2 being dumped inputs but I don't know how to properly read their values.

  • Like 1
Link to comment
Share on other sites

Very impressive game. I downloaded it to give it a try, but I think there is a small glitch in the HUD.

 

game.png

 

The bottom line of the HUD border is half cut off (I tested both NTSC and PAL just to be sure and got the same result.) BizHawk (the emulator used to capture this image) allows midscanline register changes in MARIA, so you can see effects like this that don't show up in MAME. I'm pretty sure BizHawk is correct here as it also correctly displays the midscanline tests in RevEng's test ROM.

 

Of course maybe the emulator is wrong, but it would be nice to know for sure if someone can confirm on hardware.

Edited by AlyoshaTAS
  • Like 2
Link to comment
Share on other sites

Hi Smitty..

to check it out...i Need an actual Version....all Versions....i got here work fine for me on real Hardware.

greetings Walter

I tested with the version attached to post # 130. So if that one displays correctly on hardware then i guess we've got an answer.

 

I don't see how it could though, the game is pretty clearly changing background color midscanline:

5542:  85  STA $24         A:60 X:01 Y:00 P:25 SP:F5 Cy:11143343 nvTbdIzC
5544:  A2  LDX #$01        A:60 X:01 Y:00 P:25 SP:F5 Cy:11143358 nvTbdIzC
5546:  A0  LDY #$38        A:60 X:01 Y:00 P:25 SP:F5 Cy:11143360 nvTbdIzC
5548:  AD  LDA $22B0       A:60 X:01 Y:38 P:25 SP:F5 Cy:11143362 nvTbdIzC
554B:  85  STA $20         A:92 X:01 Y:38 P:A5 SP:F5 Cy:11143433 NvTbdIzC
554D:  85  STA $24         A:92 X:01 Y:38 P:A5 SP:F5 Cy:11143436 NvTbdIzC
554F:  88  DEY             A:92 X:01 Y:38 P:A5 SP:F5 Cy:11143471 NvTbdIzC

Swapping the order of STA $20 and STA $24 would prevent this from happening.... but if it's already not happening on hardware then I'm stumped.

 

EDIT: are the .bin and .a78 different versions? They appear slightly different in hex editor

Edited by AlyoshaTAS
Link to comment
Share on other sites

So everyone is on the same page here is my current build. I've taken out the old maps in favour of the new map format. What's playable at the moment is a hub area leading to 2 rooms that demonstrate different functions and in each of the 2 test areas is an item to collect.

 

The partial keypad functionality is enabled so items can be selected with the 3 and 6 keys. It is possible to pause with the # key but you still have to unpause with the pause switch.

 

I don't think the issue you're seeing is with the background colour as the black is the background and the white is the foreground for reasons that I don't remember and are probably not relevant anymore.

 

What should be happening is that the background is set to black and the 320A mode is set, then after 64 lines the 160A mode is set (possibly with colour turned off if the game is paused), then the character set is changed, then the background is set for the main screen and so on.

 

So what you're seeing would either have to be a palette change which I'm not doing, or the change in character set but that would mean it's triggering a line and a half early.

 

Below is the relevant bit of code, maybe I'm doing something completely wrong that I'm not seeing. I can always move the change in modes / tiles / colours further down the screen slightly by masking it all with a blackened palette if needed.

topscreenroutine
	BACKGRND=$00
	
	characterset text

	asm
	lda #%11001011
    sta CTRL
    sta sCTRL
	
	LDY #64
loopBackgroundGradientHUD
	STA WSYNC
	DEY
	BNE loopBackgroundGradientHUD
	
	lda paused
	beq backgroundNotPaused
	lda #%11011000 ;Paused
	jmp skipBackgroundNotPaused
backgroundNotPaused
	lda #%01011000 ;Not Paused
skipBackgroundNotPaused
    sta CTRL
    sta sCTRL
end

	characterset StoneTiles
	
	asm
	STA WSYNC
	LDX #1
	LDY #56
	LDA backgroundColour
	STA BACKGRND
	
loopBackgroundGradientUpper
	STA WSYNC
	DEY
	BNE loopBackgroundGradientUpper

game.bas.a78

game.bas.bin

  • Like 1
Link to comment
Share on other sites

Agreed! :thumbsup:

 

So what you're seeing would either have to be a palette change which I'm not doing, or the change in character set but that would mean it's triggering a line and a half early.

Not that you have anything to do here (unless this shows on real hardware, which it sounds like it doesn't) but just wanted to highlight that the assembly that AlyoshaTAS was referencing is this bit...

 

	asm
	STA WSYNC ; $24
	LDX #1
	LDY #56 ; #$38
	LDA backgroundColour
	STA BACKGRND ; $20
	
loopBackgroundGradientUpper
	STA WSYNC
	DEY
	BNE loopBackgroundGradientUpper
  • Like 1
Link to comment
Share on other sites

Ok I took another look. I was wrong, what I'm seeing is the midscanline change in read mode when writing to the CTRL register:

552F:  A9  LDA #$58        A:CB X:00 Y:00 P:27 SP:F5 Cy:25054346 nvTbdIZC
5531:  85  STA $3C         A:58 X:00 Y:00 P:25 SP:F5 Cy:25054348 nvTbdIzC

So, if this doesn't show up on hardware, then I guess read mode is latched at the time the first pixel is rendered and kept for the entire scanline (unlike background color which is known to be able to change at any time.)

 

Good to know! (and sorry for the confusion)

 

Also cool game! :)

Edited by AlyoshaTAS
  • Like 2
Link to comment
Share on other sites

  • 5 weeks later...

Seeing as I haven't posted anything in a while here's a short update to prove I'm still working on this.

 

I've redone the dynamic lighting so it doesn't slow the game down when it's dark, and the walls have a minimum brightness so that you can still navigate in complete darkness.

I've added torches that can be toggled to change the light level in the area.

Redrawn the cultist graphics so they look pretty good.

Worked out some issue with the maps so mapmaking is about as straightforward as it's going to get.

 

I'm currently working on the AI. At the moment I have cultists able to chase after the player and wander in search of them if the player escapes their sight. Even though the wandering doesn't work exactly how I want it to one of the test cultists was still able to ambush me from a side corridor and startle me so that's a good sign.

  • Like 3
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...