| Post Your Message | |
| |
| Previous Messages | Posted By
Doug on 2019-05-24 15:13:35
| Re: Starting off again
Love it! By the way, following a pitifully long period of not having the time to finish off my current Plussy effort, I've kicked myself back into action, and am actively working on it again. The polishing continues...
I really hope to close it out this year. No promises, but I'm doing my best
Cheers, Doug
|
|
Posted By
Lavina on 2019-05-24 04:59:40
| Re: Starting off again
Look at this thread and the last post from 15 years ago )
|
|
Posted By
bubis on 2018-10-29 08:31:55
| Re: Starting off again
Good progress Doug! Yeah, you should also treat changes to $fffe-ffff as atomic. I think a good practice is to change some flag (eg. by inc-in some mem) and have some code running in an interrupt to watch that flag and do the appropriate changes. You can also do your changes between sei/cli but in that case you run the risk of missing/delaying time critical interrupts for example when you have multiple raster interrupts "building" your screen.
I often use this pattern: I have newValueA, newValueB, ... and the flag updateValues. I check in an interrupt if updateValues is zero and if not I copy newValueA, ... to the right place and set updateValues zero again. When I want a change I set newValueA, ... first and inc updateValues. It is also important that this method is only OK is updateValues never goes above one. That could also cause inconsistent changes when a interrupt happents while your are updating newValues... and updateValues is already non-zero.
|
|
Posted By
Doug on 2018-10-29 05:49:04
| Re: Starting off again
Hey Mad,
Thanks for your comments - I did try that (slicing away the code to see if it goes away), but to no avail. I was delving deep in to the guts of the game, convinced that was where the bug was. Wrong! That should have been a big hint to me right there! The problem was the code was doing crazy stuff - there was no clear pattern to the crashes. Memory was scrambled, the stack was underflowing, CPU would jam ... and always different! I tried watchpoints when I saw memory getting corrupted, but of course, it would never do it again. And to cap it off, it would take many hours running in self test mode at 'turbo speed' to happen.
Anyway, last night I had an epiphany (with the help of Vice nightly builds). The nightlies for Vice have CPU history tracing enabled, which is what I have been after. (Gaia did kindly send me an updated Yape last night too, with the same feature, but I'd already started the fateful Vice run by then). It tooks several runs with this Vice to get a CPU history that was close enough to the point of origin to be useful, but I got one.
I'd like to be able to tell you that the bug was hideous in its complexity and subtlety, but I can't! It was just a crass error. During my level re-start code (which was refactored a while ago), I managed to omit an oh-so-important SEI instruction. This meant that I was changing the interrupt vector (fffe/ffff) with live interrupts - never, ever a good idea! So, predictably, the crash was caused by me having changed fffe, but not ffff when an interrupt came in. Hence, depending on what was in ffff at the time, the CPU would jump off to who-knows-where in the code, and cause total havoc. Aaaarrrggghhh!! Such a stupid little thing, and it has given me weeks of grief!
Anyway, I have a week off work now, and I plan to give the game some serious attention, to try to catch up to where I should be.
Oh, and I have a little present to myself coming this week too - a real Plussy! I found a chap on eBay selling a refurbished one (re-capped mobo, heatsinks everywhere). Looking forward to that coming. I'll be grabbing an SD2IEC as well. Can't wait to see it on the real thing!
Cheers, Doug
|
|
Posted By
Mad on 2018-10-28 20:29:51
| Re: Starting off again
Hey Doug!
Just an minor idea (which you of course already had by yourself).. Could you remove as much code as possible and then let your test run till it crashes? You could build a minimum crashing version by that if that's possible with your setup.. Sad to hear, that you didn't succeed in finding the bug till now!
cheers, Mad
|
|
Posted By
Doug on 2018-10-27 17:15:14
| Re: Starting off again
@Gaia: I sure am! It seems I was premature in celebrating my success. I certainly fixed several bugs, just not *the* bug, which it seems is still lurking in there. I am playing a bit fast-and-lose, but it should be safe, and I cannot see how the crash is happening. I know precisely what the problem is, its just catching it.
Summary:
I have a 'heavy duty' interrupt that fires periodically, that can take a long time. During this long service time I re-enable interrupts, so other (brief but display critical interrupts) can still happen. After a looong time, the exit from one these heavy interrupts goes wrong, returning to somewhere crazy (always the same place though). I've added debug to all IRQ entry and exit code to verify the return PC on the stack is within bounds. It always is, except for when it goes wrong. In this case its good on IRQ entry, but not on IRQ exit => something is scribbling on the stack just where the IRQ return address is.
(edit) Actually, no its not. It worse. I just checked the SP when the game starts (which should of course be the absolute high water mark), and what's happening is when it goes wrong the SP has popped up higher than this level. This, I think, should be impossible. Hmmm.
(Edit). I think I know what it is. Maybe, I need to prove it. It looks to me like RTI is not being emulated as an atomic operation. RTI pops the flags, then the PC. If these two operations allow an interrupt in between, and the RTI is then re-executed *from scratch* we'd see exactly this issue (SP goes too high, and PC goes wild after interrupt exit). Remember that I reenable interrupts, so I execute one of my RTI instructions with interrupts enabled, which is odd but perfectly legal. 6502 should guarantee all instructions are atomic.
Any thoughts?
I'm going to set about proving or disproving this theory now.
(Edit) Pah. Not that :-(
|
|
Posted By
MIK on 2018-10-26 16:28:09
| Re: Starting off again
Nice to see another Fingers Malone fan!
|
|
Posted By
Doug on 2018-10-26 16:38:46
| Re: Starting off again
Hey Bruce!
Thanks for the kind words - I really appreciate it. Quite a few people have expressed similar feelings about Icicle Works and Christmas. I'm really pleased it brightened up people's holidays! I think you're mad for trying to master Fingers! It drove me mad, and I wrote it!!
Cheers, Doug
|
|
Posted By
BruceCoates on 2018-10-25 10:51:38
| Re: Starting off again
Doug
What a real pleasure it is to see you posting here and such great news that you are writing another game for our beloved machine. My plus/4 was the greatest Christmas present I received as a kid, I was so chuffed and I vividly remember Icicle Works loading with snow on the ground outside and its stayed with me ever since. I was also a big fan of Fingers Malone and got some way to mastering this and that's some achievement. All the best to you and good luck with the game.
|
|
Posted By
Gaia on 2018-10-24 18:45:27
| Re: Starting off again
Hi Doug, I have a YAPE build with an opcode logging window as you enter monitor. Drop me a note in case you're still interested.
|
|
Posted By
Doug on 2018-10-24 12:38:32
| Re: Starting off again
Thanks for all the help, advice and encouragement guys! Nice to know I'm not alone!!
I've caught it. Phew. In the end I added some light wieght logging to track the progress of things, and then discovered where there was some corruption on zero page. With the help of Yape write watchpoints I caught it. In the end it was my own fault (naturally) - I was trying to be too stingy with zero page variables, and was re-using something where it really wasn't safe too (I have nesting interrupts - yikes!). Alll sorted now - I hope...!!!
|
|
Posted By
bubis on 2018-10-24 08:44:56
| Re: Starting off again
Hi Doug,
This is what I would do: 0. Start the game and create a snapshot. 1. Run it for T time, if no crash yet, create a new snapshot. Repeat (1) until you have a crash. 2. Let T=T/2 (or decrease it some other way), load last snapshot and go to (1) again.
This way you will have a series of good states closer and closer to the crashing point. You choose a reasonably close one and debug it in the emu's monitor.
There is a slight chance that you can automate this in Plus4Emu, because it has Lua scripting. I am not sure if the API for saving snapshots is exposed in Lua though.
UPDATE: I got a quick look on the code. You can't save snapshots from Lua, but it is not difficult to add this functionality. The source files of interest are: script.hpp/.cpp and plus4vm.hpp/.cpp. The Plus4VM has saveState(...)/loadState(...) functions, but currently only saveProgram(...)/loadProgram(..) is exposed in Lua.
|
|
Posted By
gerliczer on 2018-10-24 02:45:46
| Re: Starting off again
Hi Doug,
I wouldn't assume you were less than meticulous, but did you check the bug not only in YAPE but also in YAPE SDL and plus4emu? The issue may be in emulation.
Furthermore, did you try plus4emu's scripting capabilities? I think, although never tried, it has quite extensive support for debugging in Lua script. I seem to remember it, or its counterpart in ep128emu, was use for SID register logging when the Enterprise guys made their SID player.
|
|
Posted By
Doug on 2018-10-23 18:19:50
| Re: Starting off again
Thanks guys! @MMS - I've tried plus4emu, but its not really up to it either @mad - thanks for the kind offer - I've got a couple of other tricks to try (some logging etc), but if I get nowhere (likely!) I'll definitely take you up on your offer! I'll see where I am in a couple of days.
Oh for an emulator with a cycle by cycle history of what was read, what was written, what was executed....
|
|
Posted By
MMS on 2018-10-23 17:38:12
| Re: Starting off again
Dear Doug, I am not sure, if it will help, but the Plus4emu from IstvanV contains a built-in Debugger, showing the CPU,TED registers and the stack at the time of freeze. And a lot of other things I do not use at all
I am not a really great programmer to tell, how much useful it is, but seems to support step-by-step bug hunting.
|
|
Posted By
Mad on 2018-10-23 17:16:35
| Re: Starting off again
Doug I was confronted with the almost same situations, too sometimes. I do have the source code of Yape and can actually build it. I tried to fix these kind of bugs just by marking the last called instructions in the Yape source code (an array).. Perhaps it's possible for Gaia to implement somewhere a visible "callstack" into Yape. Could be that it's too complicated .. If you send me your program I could also try to debug it here.. But best thing would be some sort of the last 3 or 5 instructions shown in Yape somewhere, that would be extremely awesome since I got into these kind of bugs many times, too and it took sometimes sorta weeks to hunt them down..
cheers - Mad (pm me, and I could just try my luck on that..)
|
|
Posted By
Doug on 2018-10-23 15:34:07
| Re: Starting off again
Hi everyone. I'm looking for some emulator advice, to help me debug a particularly nasty bug that I have got. After hours of play, it crashes, it utterly weird ways. The game has a 'self test mode', which allows it to auto play, and I put Yape in 'full throttle' mode to speed things up. But, after an hour or two of this stress, it dies. I'm sure its a scribble somewhere, but how to catch it? I can set Yape break points to catch whenever the PC goes outside of the range it should be (one of the many crash modes), but Yape does not tell me *how* it got there. The stack contains the address-1 of where it winds up, which makes it look like a corrupted JSR somewhere.
Edit: no its not a JSR. A closer look shows that the 3 bytes on the stack are being interpreted as CPU flag / return address - so somehow its executed an RTI unintentionally, or the stack got smashed in an ISR. Hmmm....
What I really would like is an emulator (like qemu for instance), that could give me a history of what went before. I appreciate that the emulators out there were written to allow people to still enjoy old games, but there is a need (for me at least!) to have an emulator with a focus on the developers needs. Does anyone have any advice?
Thanks in advance! - Doug
|
|
Posted By
MIK on 2018-09-12 17:42:49
| Re: Starting off again
No problem, going in blind is never easy and because I had to remind my self what was what I thought I'd share.
At the moment your demo has a little dude character that looks like the brother of Tom Thumb, and THAT I do like make no mistake.
But just to share a thought..., the thing that 'made' Icicle Works apart from the superior smoothness and flow of play over Boulder Dash was also the Santa theme. Having another theme might help. I was thinking maybe a Far East theme, like have a little rounded Ninja dude as the main character and being dressed in black might help for color or the lack of. Take Last Ninja 2 & 3, some of the in-game artwork images of him they used black and blue, blue adding definition.
I know ninja's are Japanese but you could borrow some chinese style art like the great wall of china, lion statues at the end of a wall, moving panda's and even a chinese dragon boss as a moving snake running about.
On ZX spectrum there is a game called Ninjajar, it's a platform but the main character is a little round ninja guy. I guess even Future Knight could of been a ninja if he wore black.
and a name for all this dreaming of a theme? Duno..., Rock Shifter Ninja.
|
|
Posted By
Doug on 2018-09-10 13:56:13
| Re: Starting off again
Thank you MIK! That is supremely useful! I learnt a couple of things just reading it through once.
Time to fire up KT and have a play, with your notes open for reference. You are a star!
|
|
Posted By
MIK on 2018-09-10 09:39:13
| Re: Starting off again
If you have had a play with Knaecketraecker I'm sure you have worked a few things out. I only ever made one song but to save some messing about here are a few direct things you may want answers too.
Deleting Inputs Use the Delete key to remove things like notes, volume setting, voice number ect.
1e This is not as it reads but the letter L as in le. L = loop, e = end.
Volume settings are 0-F, as in 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F with 0 being Off and F being Max
Keyboard Layout Lower Keyboard, PC keys row Z-> are the White Keys & row A-L the Black Keys Upper Keyboard, PC keys row Q-P are the White Keys & row 1- - the Black Keys
Instrument box: PT = Pulse tone or as I call it - normal TED sound NT = Noise tone 1e = L & E. Loop and End positions FRQ = Frequency value. 00 being default, any thing higher will change the pitch VOL = Volume setting 0-F
Pattern Box: IA = Instrument number VA = Volume setting 0-F NA = Note Value - (press the button Upper Oct/Lower Oct to change octaves on the PC keys) CA = 1e as in L & E. Loop and End positions
IB = Instrument number VB = Volume setting 0-F NA = Note value - (press the button Upper Oct/Lover Oct to change octave on the PC keys) CB = 1e as in L & E. Loop and End positions
Sequence Box: # = pattern number a = voice channel pattern/track number b = voice channel pattern/track number ctrl = 1e as in L & E. Loop and End positions
Starting with 00 under a and 01 under b, this will give you two patterns/tracks so you can enter your song. So pattern #00 will read a = 00 & b = 01
If 00 is a bass track and you want to repeat this on the next pattern then #01 will read #01 a = 00 b = 02 (b = 02 is a new tune pattern/track, so you keep the bass and can add new parts of the tune under 02) And your two pattern sequence will now look like...,
#00 00 01 #01 00 02
Don't forget to use 1e as in Loop and End under crtl as you add more patterns - loop and end positions for your song...
Groove: Save before you change anything!!!
Best thing to do is to copy the groove settings of a song you like and one that will suite your tune. Get the basics of your tune down and only then mess with the groove settings as it will change the timing from speed to the gaps in each note being played, it will even change how long or short your notes play. What it sort of does is miss place notes and add like a swing effect with-in your 4 beats to the bar type of thing and this was what I meant when I said there is a slight off sync timing going on. Messing with the groove afterwards will tighten things up or even change the style to something that sounds cool.
|
|
Posted By
Doug on 2018-09-09 17:24:27
| Re: Starting off again
Guys - once again, thank you for your help! That's some very useful stuff. I'll do my homework, and conquer the knaeckerthingy! Listening to those tracks all in one place blew my mind! I've made a lot of progress on the game in recent days. I didn't think I'd be looking at sound tracking it quite so soon. I doubt I'll keep this level of momentum, but its been fun.
Once I've got it into a suitable state, I'll cetainly be looking for people to assist - level design, and music tracks for sure, probably graphics too. But I'm not quite at that point just yet.
|
|
Posted By
5tarbuck on 2018-09-09 15:13:32
| Re: Starting off again
Hey Dough! Just download the .kps archives from here:
slipstream_kps.zip majesty_of_sprites_kps.zip the_lands_of_zador_kps.zip pets_rescue_music.zip
...and look at the songs in the Knaecketraecker. This should be the fastest way to understand how Knaecketraecker works. At the beginning, the Knaecketraecker looks a bit complicated, but actually it doesn't need witchcraft to compose a song. And if you specifically say what songs you need (music style) and how many, then you will surely find musicians who will help you.
|
|
Posted By
MIK on 2018-09-09 08:40:54
| Re: Starting off again
Doug,
Your Icicle Works music was awesome and that Bell sound you created for the lift in Fingers Malone was also one of the most unique sounds ever to come out of the machine back in the day, very un-ted sounding and crystal clear, 10/10! Your better than you think you are!
Knaecketraecker, Old topic: forum/30248
Just some advice more than anything... Best thing to do if you fancy a mess about is to load an example you like the sound of and then your have some voices ready to use. Take a look at how a tune was put together and it won't take long to see how it works.
Don't expect classic TED music notes to sound the same, (like SOUND1,596,10 for example) when playing long notes. It sort of loops like a seconds worth of note over and over but what this allows is that you can add volume setting commands as it plays and get cool results.
Also and I don't know the word for it..., there is a slight off sync timing going on as your tune plays which sort of jazzes things up. No two patterns will sound the same because of this effect even if they are identical. Can be a little off putting at first but you get used to it.
It's easy to get into any way and the docs that come with it I recall have a few commands explained, like how do you jump to the next pattern half way through another. Just save before you doing anything major like copy/paste a pattern until you have the hang of it. If you have ever messed with say Protracker on an Amiga then that's how easy it is to get into it. Making new sounds will be the hardest part, borrow other peoples sounds for now and see what you get is my advice. Your son is very brave looking in to something that comes from the dark ages of gaming, hope he has some fun any way!
PS. As a reminder, one of the note voice channels can't be played at the same time as the noise channel, I think it's voice 1 & 3 which need to be on the same channel/track and then voice 2 on it's own channel/track.
|
|
Posted By
Doug on 2018-09-09 06:34:51
| Re: Starting off again
I've had some very kind assistance from Mad, who's put me on the right direction with knaecker. I am now nicely integrated with this cool player, having the ability to play multiple times, SFX, etc. But here's the rub: the PC composer tool is a bit hard to follow. I'm no musician, which doesn't help, but even so I'm finding fairly hard going. Would anyone out there be able to give me from help in how to tame this beast? My son (who is very musical) is keen to compose some tunes, but getting started is difficult. Also, I'd like to create some SFX, which I am hoping might be a bit easier! Finally, if anyone has any tracks they've written, or would like to contribute any, I'm very open!!
Thanks, Doug
|
|
Posted By
Mad on 2018-08-21 19:02:02
| Re: Starting off again
Hey Doug just a small note. The tracks can have different speed values. We mostly used doublespeed tunes. There are some quadtro speed tunes as examples. You can use singlespeed tunes, too, if rastertime really is a problem. Hope Degauss responds here! And yes it's Knaecketracker!
|
|
Posted By
Doug on 2018-08-21 18:00:42
| Re: Starting off again
Thanks for the comments everyone. I've been listening to some demos that use TED, and it can be made to do some cool stuff can't it? I like the look of degauss's tracker (knaekertracker I think). Looking the examples it can produce great results. I am intrigued about the 'virtual voice' for overlaying s/fx. Maybe degauss could help me? The player uses quiet a few raster lines, which is to be expected, and may mean I need to revisit my rendering engine (which can be quiet time consuming) to squeeze some more cycles out. No bad thing.
|
|
Posted By
Mad on 2018-08-21 11:55:08
| Re: Starting off again
We choose to use TED sound out of different options.
I know SID is ultra nice and most people love the SID sound.
Even the real world musicians I know "prostrate" before this chip. I personally have heard a lot of SID tunes in my life and was really stunned by many of them. Since I am actually a C64 guy judging from my youth where the plus/4 was just the first computer I really got in contact for games. Most of the time I used a C64 and PC (and many consoles) since that was my longtime setup ( shame on me ).
There are some games for the C64 which support ram extensions and CPU speeders which look really amazing, I would have been proud to own them in the 90s. There is also a 256k Ram expansion for the plus/4, demos with it should also be utterly amazing. The Sidcard is also a extremely nice addon, and supported by many recent emulators..
However, somehow Degauss made this awesome TED tracks for his demos in the past and later took all the effort to produce a proper TED tracker for it. So the option to use a SID was not really needed for us and we were in the favor to use a fully native engine for our games and demos. I mean it's you choice, and Lavina is right that you can build much more atmosphere if you have some proper tunes which also could be played on the radio in some "obscure radio transmission at midnight".
The thing I missed most in the TED tunes was this glorious bass the SID provides. Our demos lead to some real interessting findings about TED music, if you play TED tunes on a big PA on a demo party then it could actually sound like a real Drum and Bass track with lots of bass and the normal sounds you would await from a proper bassy DnB tune, Degauss is the man . No need to add filters or something.
I mean it's completely your choice, however a normal TED tune would ensure that you support the complete range of 64k C16/Plus/4 etc, without the need of modifications..
Degauss made some code snippets for me to use the 3rd (virtual) voice of his player routine to play sfx. It's possible to use the other two voices for normal music playback. He even provided the windows based tracker for it. If you do need these code snippets I would be happy to support you in implementing them. For SID tunes I used Goattracker from Covert Bitops and also did the sfx with it, I think it's a good and safe option for games. Perhaps there are good other options, too..
Have to say that I love every demo with SID sound on the plus/4, too!
https://www.youtube.com/watch?v=HJUJBa0Ups8 (it sounded !way! more awesome on the party itself, it seemed that most people where blown away by this tune on the party (and we were surrounded by C64 demos in the oldschool compo..))
|
|
Posted By
Luca on 2018-08-21 06:21:31
| Re: Starting off again
TED sound, absolutely! Since the time I wrote that article in Lone News 20, I wished a comeback in respect of the original iron, we had a long way to go and now here we are, in 2018: the gallery of stunning TED tunes should have convinced you all!
|
|
Posted By
Lavina on 2018-08-21 02:43:34
| Re: Starting off again
TED tune is of course more authentic when it comes to a plus4 game. It would add to the warm retro feeling and we have - as said above - some real masters of this instrument.
SID is more for demos to create atmosphere, but actually it would be nice to hear SID sound in a (refurbished -upgraded - new - modernized) game.
Maybe we need a vote on the left hand side of the front page.
|
|
Posted By
gerliczer on 2018-08-21 02:37:31
| Re: Starting off again
In the last couple of years there were four more or less regular TED musicians, and some one shot kind of guys. The regulars are Csabo, Luca, 5tarbuck and Degauss, in no particular order. The one shot kinds are the guy who wrote the music of Threeve and the guys who wrote the demosongs of TEDzakker, or at least they are all who I can remember. Csabo and Luca are seemingly always ready for some audio action to those who request their help. The other two regulars probably has less time to sacrifice for others' projects. The one shot kinds, well, I wouldn't hope anything.
|
|
Posted By
Csabo on 2018-08-20 20:24:07
| Re: Starting off again
I'll wholeheartedly say yes to that one. Sorry to toot my own horn, but my in-game tune for Pac-Pac for example got really positive feedback from the community. If you haven't done so already, check out the HVTC here on the site, there are lots of nice tunes.
|
|
Posted By
Doug on 2018-08-20 17:38:54
| Re: Starting off again
A request for help and advice:
I am starting to think about how to do the music and f/x for the game. The TED is super limited in this respect, and I now know (thanks Lavina!) many people use sidcard to overcome this. I can see why. My gut reaction is to use SID, and know I'll get some great results, but has anyone really explored if it is possible to get decent music and f/x from TED (without the overhead of digi, which is no-go for the use inside a game). All thoughts and advice welcome!
Cheers, Doug
|
|
Posted By
MIK on 2018-08-17 18:36:20
| Re: Starting off again
Yeah it's your baby! I was just thinking out loud some idea's.
Just in case your still in the idea phase, a game called Survivors. Don't know if it ever crossed your radar but was interesting. It had 3 droids that you switched between to do different stuff. One was for digging, one for pushing and one for collecting.
Sort of a long lost forgotten boulder dash themed game truth be told. Might also be a bit slow for some with the swapping but was neat any way.
|
|
Posted By
Doug on 2018-08-17 16:02:11
| Re: Starting off again
Hey MIK - interesting ideas. Hmmm... no promises, but I'll have a think about it!
|
|
Posted By
MIK on 2018-08-17 10:32:13
| Re: Starting off again
Sorry I was a bit late Doug! Fantastic work so far and very cool to see you have gone back to where it all started! I love the gravity switch idea which should add some cool twists to the boulder dash theme. Very neat idea for puzzles or to correct any mistakes you may of made, you could even block the exit with rock that needs to be moved out of a maze ect.. Or enemies that change direction when gravity shifts, or you could have a timer as to when gravity is going to auto change direction.
Might be asking too much but maybe a stick of dynamite could cause a mini Earthquake over part of the map which would move rocks and gems 1 space in random directions changing the level. With that on a timer you have a chance to move to a safe spot so you can still move... and again gravity switches to help you out of the mess you created sort of thing. Just an idea any way.
Not sure if you have a name for your game but I'm sure you have realised the name Doug works.
Don't forget to add the odd icicle works looking stage of course!
Yeah no rush Doug. It's looking really cool so far and looks like your on to another classic! Fingers crossed and best of luck!
|
|
Posted By
Doug on 2018-08-08 18:26:59
| Re: Starting off again
Hi Carrion,
That's looking and sounding REALLY sweet! Lovely job!
Cheers, Doug
|
|
|
Posted By
Doug on 2018-08-07 17:38:35
| Re: Starting off again
Thanks guys. I was worried that people might be disappointed since its a re-do of one of my old titles. MikeDX actually gave me the idea a while ago, when he suggested an anniversary re-working of Icicle Works. I didn't have time then (don't really now TBH), but I liked the idea, and wanted to see where I could take the ideas.
I've been concentrating on performance, game mechanics, and getting lot of colours on screen. I still haven't finished the investigation phase: I've got a few ideas left to explore - most don't lead anywhere, but you never know.
That level was a bit manic since I was trying out various game elements - sorry. Real levels will be more playable.
Lots of place holder graphics in there, no animations, no level theming, no sound or music, no title screen, high score table or Easter eggs. This is goning to take a while!
|
|
Posted By
Lavina on 2018-08-07 02:19:23
| Re: Starting off again
wow! It's definitely more of an answer than I ever hoped for!
Really good concept of a gameplay as well.
|
|
Posted By
Csabo on 2018-08-06 22:23:16
| Re: Starting off again
Wow, that's starting to look really good. Awesome (and a bit surreal) to see this come to fruition
|
|
Posted By
Doug on 2018-08-06 19:40:46
| Re: Starting off again
I'd love to know how Carrion is getting on too. As for myself, I'll post a link to a snapshot executible this week, just as soon as I'm happy with it. (Some crass bugs need squashing before it sees the light of day).
Its a long way from finished, but you'll see what I've been doing, hopefully get a feel for where its going. Remember - its a work in progress!
edit:
Well, I made better progress than I expected tonight.
Here's the link: https://drive.google.com/file/d/1N5UgF_6gq6wuBL3VyWB1OzMvqwYVKm40/view?usp=sharing
Huge amount left to do! Keys are: A - left S - right P - up L - down SPACE - restart level shift with direction key - dig, or drag, or activate gravity switch.
Just one level, which is more about testing game logic than intended to be representative of game play. Enjoy!
|
|
Posted By
Lavina on 2018-08-06 08:19:30
| Re: Starting off again
Any news on this one?
|
|
Posted By
carrion on 2018-05-22 15:35:34
| Re: Starting off again
@Doug Wow man. thanks for details. I will need some time to digest it but looking quickly at your approach I think Im pretty close to the final solution. I handle some things very similar to you solution.
Interesting for me are the number you figured out that $FF1F needs. For now I'm most curious how, in your plus4emu snapshot that you shared, you solved the nice border between upper and lower (scrolled) parts of the screen. I can see the gap and in my case I have at least one char (8pix) gap between them.
anyway I'll study your code here and your snapshot again to see if I get all the details.
|
|
Posted By
Doug on 2018-05-20 16:36:01
| Re: Starting off again
Hi,
For my game I too need a 4 way scroller, plus a few fixed status lines. In my case its the top three lines that are fixed, and the lower part of the screen that scrolls. The technique I developed uses two raster interrupts. One at the very bottom of the visible screen, which zeros the scroll registers for the upcoming status lines, and gets ready for the split and scroll that follows that. The other interrupt is at the line of the split, that programs the TED registers to achieve the split.
The game engines maintains the screen position in 16 bit pixel coordinates. The bottom of screen interrupt handler takes these coordinates and calculates what to program in the TED registers to acheive the desired fine scroll. Coarse scrolling (character level) is acheived elsewhere, where a classic double-buffer approach is used. Essentially the interrupt routine looks at what the current live buffer is, and uses that to draw the next display (screen and attribute source addresses plus fine scroll values).
To acheive the scroll I use the TED hscroll, vscroll and vertical subaddress registers. For the X scroll its easy - you take the lower 3 bits of the screen X position, and take that number away from 7. This is the X scroll value ($ff07). Simple.
Vertically you do something similar but have to use vScroll and the vertical subaddress register ($ff1f) together to achieve the desired effect. The values to use were arrived at empirically (not very scientific!) but they work!
Here's the code, written in Kick Asm (I hope the macros I use are self-explanatory).
Notes: RASTER1 is $1f (split line) RASTER2 is $c8 (bottom of screen) screenOn is a variable to control screen blanking ($00 or $10) I use Kick's name spaces, so you'll stuff like 'sta ted.vScroll' - this is just 'sta $ff06') The compensation values should work for any split ending in $-7 or $-f, I think!
/* *************************************** * Raster interrupt at split screen *************************************** */ raster1IRQ: pushAX() /* Save registers */
ldx vsubValue /* Change TED registers ASAP */ lda finey sta ted.vScroll stx ted.verticalSub
lda finex sta ted.hScroll
lda ted.irqStatus /* Clear interrupt latch */ sta ted.irqStatus lda #RASTER2 sta ted.rasterMatch
set16Imm(cpu.irqVectorLo, raster2IRQ)
popAX() /* Restore registers and exit */ rti
/* *************************************** * Raster interrupt at bottom of screen *************************************** */ raster2IRQ: pushAXY() /* Save registers */
lda #$07 /* Set steady screen for status lines */ ora screenOn sta ted.vScroll lda #$07 | ted.normalMode sta ted.hScroll
ldx renderedScreen /* Double buffer index (0 or 1) */
lda screeny,x and #$07 tay lda scrollTabY,y /* What fine Y scroll to use */ ora screenOn sta finey /* what to put in vScroll */ and #$7 tax lda scrollTab,x /* Work out companion value */ sta vsubValue /* what to put in vertical subaddress */
ldx renderedScreen /* Double buffer index (0 or 1) */ lda screenx,x and #$07 tay lda scrollTab,y /* Convert 0-7 to 7-0 */ ora #(ted.multiColourMode | ted.normalMode) sta finex /* What to put in hScroll */
lda ted.irqStatus /* Clear interrupt latch */ sta ted.irqStatus lda #RASTER1 sta ted.rasterMatch
lda screenBases,x /* Set which buffer is displayed */ sta ted.screenBase
set16Imm(cpu.irqVectorLo, raster1IRQ)
!: popAXY() /* Restore registers and exit */ rti
scrollTab: .byte 7,6,5,4,3,2,1,0 /* Convert 0-7 to 7-0 */ scrollTabY: .byte 1,0,7,6,5,4,3,2 /* Vertical compensation values */
|
|
Posted By
Lavina on 2018-05-20 15:14:42
| Re: Starting off again
@ Carrion
BSZ Ran into the same issue while coding the endscroller of W4PL and due to lack of time for further experimentation he ended up doing it in a different way.
|
|
Posted By
Doug on 2018-05-20 15:02:15
| Re: Starting off again
Hi Carrion,
I like the look of your project! Vertical splits are hard to do well. I've got a solution that works, but I still have a very minor glitch I can't seem to get rid of. I'll dig out the code and post it on here....
Cheers, Doug
|
|
Posted By
carrion on 2018-05-20 05:49:15
| Re: Starting off again
I work on same issue as Doug is (4 way scroller) for my Laura port, so I thought I write and ask here in this thread: When doing vertical scroll I'm not sure I understand how $ff1f should be handled to do split. Any hints how this thing works?
I try to do a split where the panel for score, etc will be placed. As seen here in my latest try https://www.youtube.com/watch?v=c_Q_H-hDfqs&t=6s
TIA for any help.
|
|
Posted By
IstvanV on 2018-05-08 08:45:17
| Re: Starting off again
Re: the horizontal scroll glitch in plus4emu, it is a bug that affects the leftmost character in 38 column multicolor character mode if it is high resolution and the amount of scroll is an odd number. A fix is now implemented in the Git source code.
|
|
Posted By
MIK on 2018-05-08 08:19:03
| Re: Starting off again
Sounds like your making something cool Doug! No rush as always and best of luck as you continue to tame the beast!
|
|
Posted By
Mad on 2018-05-08 02:59:01
| Re: Starting off again
Cool update! I remember starting on Plus/4 and recognizing that you just can copy around 1000-2000 bytes with a a simple loop per frame. On other platforms that would be some not so uncommon setting for a maximal string size. If someone codes demos then code generators can also be a good point, writing C code which produces assembler code. But for games that's mostly not needed, I think... Nice that you are going forward!! Good luck for getting this on again!
|
|
Posted By
Csabo on 2018-05-07 20:02:39
| Re: Starting off again
The update is most appreciated. First test level play through, that's a big milestone
|
|
Posted By
Lavina on 2018-05-07 18:57:28
| Re: Starting off again
great news, indeed. Thanks for the update!
|
|
Posted By
Doug on 2018-05-07 18:53:33
| Re: Starting off again
Hi everyone. I thought I'd refresh this thread just to let you all know that I've not been idle. I've been having lots of frustration, err I mean fun! I've written, the rewritten and rewritten again lots of code. Oh the joys of 6502! Look up tables, self modifying code, the need to come up with cunning ways of doing pretty much anything. And there's never enough CPU cycles. Its an absolute blast!
Anyway, today I hacked up a level editor, and encoder, and then enjoyed my first real play through of a test level. So far so good. Still a long way to go, but its happening.
Cheers, Doug
|
|
|
Posted By
Doug on 2018-04-05 17:44:33
| Re: Starting off again
Thanks everyone - some useful information there!
|
|
|
Posted By
Luca on 2018-04-05 13:32:22
| Re: Starting off again
I find quite interesting randomize the numbers by crossing a fast changing one with a human driven one: INC a value as long as the player presses a button EOR $FF1E
|
|
Posted By
Doug on 2018-04-05 13:24:11
| Re: Starting off again
Anyone got a few tips on fast random number generation? I think back in the day I used to read a bunch of TED registers that changed frequently (v & h raster, for instance), did some bit fiddling, and that was it. I seem to remember there's no equivalent of the C64 SID random register. Not a biggy, I can try a few ideas for myself, but I thought someone may have some perls of wisdom on the subject. There's a ton of PRNGs out there on the web for the 6502, but they're universally not that fast (100+ cycles!!), or frankly, rubbish generators.
Thanks, Doug
|
|
Posted By
Mad on 2018-03-21 13:34:35
| Re: Starting off again
You can switch the emulator speed to 120%, that was a suggestion of some C64 people in a forum where I had to discuss this issue (many times).
|
|
Posted By
MIK on 2018-03-21 01:28:50
| Re: Starting off again
Just a couple of things that may not help...
I don't know how close Nintendo's NES is to a Plus/4, also a 1 chip does all I believe. Super Mario 3 is multi directional, however the machine can only scroll on one axis. To get the other axis to scroll an offscreen buffer was used. This process of using an offscreen buffer causes one side of the screen to display artifacts, palette changing colour ect. Not really an issue if a game is good if you get my meaning...
And as I'm sure your all aware, some of the big name classics like on C64 don't use the whole screen when scrolling. As you know this would of helped to maintain smoothness with the amount of independent action going on... Some examples: Ikari Warriors, Ghost'n Goblins, Bionic Commandos, Rick Dangerous 2, and even Turrican has a nice looking dash at the bottom of the screen. Every little helps and if the game is fun, the graphics are made to fit a smaller window you don't really notice either.
Ok... Enough of my crappy so called wise words - I'll shut the door on my way out.
|
|
Posted By
Gaia on 2018-03-20 19:36:51
| Re: Starting off again
Yeah it's offtopic. Anyway, try setting up a custom 50 Hz video resolution mode for your TFT monitor and video card. It should be dead easy and results in beautifully smooth scrolling without any extra overhead (since emulator frame interpolation also has artifacts and results in a delay as well, which is not too handy for games).
|
|
Posted By
MMS on 2018-03-20 16:04:04
| Re: Starting off again
Maybe OFF I have a Dell 20" supersharp monitor and a Radeon HD card, and this combination results fixed 60Hz setting, though the monoitor reports 75Hz too.
Cannot play properly Larry's last Dreamtime slideshow, as it vibrates SO badly on emulator. I saw personally at Arok, how well a real iron can show that slideshow, but none of the emulators can reproduce that quality. Maybe Yape is the closest thing (least vibration) with NTSC emulation.
|
|
Posted By
MIK on 2018-03-21 00:22:02
| Re: Starting off again
I'm not a coder but just to add... Scrolling in general for all forms of emulation be it 8bit,16bit, Mame ect is never as smooth as the real thing anyway. My guess is it's something to do with the timing of the machines with the refresh rate of a CRT as to why.
It's a bit like having a 60fps game on a CRT but via emulation that same game runs like 50fps, 10 frames are being skipped if you get my meaning and why it never looks as smooth. Sonic the Hedgehog on a Megadrive emulator won't look as smooth as the real deal and if running on a modern day screen that's something else in the way as none of the new flat screens can keep up with a good old CRT.
|
|
Posted By
Lavina on 2018-03-20 04:15:47
| Re: Starting off again
To be precise I've always used YAPE (not SDL) for development and checked the results time from time with Plus4Emu.
|
|
|
Posted By
Doug on 2018-03-19 19:26:57
| Re: Starting off again
Cool! Thanks for the help!
|
|
Posted By
Luca on 2018-03-19 19:03:54
| Re: Starting off again
Mmmh... I think it's a result of the mismatch between our monitor refresh and the plus4emu configuration, although I've tried several combinations and no one worked to me; cycling the video configurations by pressing F9, some more weirdness can be seen, involving even some chars columns in the middle while moving around... Once I've seen that YAPE doesn't produce the same weird effect, I tested it on real iron playing with the ASDF keys, and I can say that there's no weird effect on it, all the screen scrolls like expected.
|
|
Posted By
Doug on 2018-03-19 18:53:06
| Re: Starting off again
Thanks!! This is certainly a minefield! Summary of my not-very-scientific-research:
plus4emu : get weird 1st column effect during horizontal panning. Requires minor de-glitch in software to make vertical panning smooth vice : No 1st column effect during horizontal panning De-glitch introduced for plus4emu *causes* vertical glitch (OK with it removed) yapesdl : No 1st column effect during horizontal panning. Requires same mod as plus4emu to make vertical panning smooth.
I'll be careful going forward to check on all platforms, but it looks like YAPE may be the best option.
|
|
Posted By
Lavina on 2018-03-19 18:39:13
| Re: Starting off again
Be careful Doug, if you cannot test on real iron then follow this trust priority order: 1) Plus4Emu 2) Yape 3) VICE.
|
|
Posted By
Doug on 2018-03-19 18:34:35
| Re: Starting off again
Hi,
I've made some progress with the scrolling, but I am getting a very weird effect that I cannot readily explain. I've shared a plus4emu demo file that shows this: https://drive.google.com/open?id=1NJJpr1q7FndDJMHEeQGh7hV-IRB1Fz4Q
The scrolling is deliberately slowed down to show the effect I'm talking about - its the left hand column of characters, which seems to have a mind of its own. Any theories as to what might be going on there? I've not got access to real hardware, so can't rule out it being a plus4emu thing. I'll keep on poking around, but any help or suggestions would be most welcome!
Cheers, Doug
[edit]: Hmmm. Interesting. I just tried it on a VICE plus/4 emulation, and the horizontal scroll is silky smooth - no glitch like plus4emu is showing, however I do get a vertical scroll 'whole char jump' glitch. I saw something similar on plus4emu, and corrected for it in the code, but it looks like this very 'correction' is causing a glitch on VICE. Any idea which is the more faithful emulation? [edit again!] - yep, I removed my 'correction' and now VICE gives me silky smooth 4 way scrolling. Hey ho.
|
|
Posted By
MIK on 2018-03-18 04:45:44
| Re: Starting off again
Any idea's what type of game it might be?
2 player v-split but not moving: Bust-A-Move - Taito 2 player v-split scrolling: Spy Hunter 2 - Midway
|
|
Posted By
Mad on 2018-03-17 20:49:02
| Re: Starting off again
Ok, now that I got the idea of that $ff1c/$ff1d stuff. Seems it's a good solution to have this max 8 pixel distance vscroll in 2 splitscreens under control, without triggering a new badline. Thanx Gaia!! I complicated stuff there with using a $ff06/$ff1f approach, however after bubis description this also seems very straightforward and simple to use. It's a little hard that you have to recover the rasterstate afterwards the $ff1c/$ff1d approach, for not destroying the complete display state.
I wrote to Luca that he should ask if we can put bubis description of the ted badline behaviour into some extra documentation since it's always a big problem (at least) for me. So it's my bad, to ask for it, not actually Lucas, I think he knows his stuff very well.
I am not 100% sure if there could be an unwanted badline with a split screen, at either approach. (Assuming the split can be placed freely on the screen and both splitscreens have different vscroll positions). If there could be problems with this, then that was most probably the obstacle I faced in creating of Pets Rescue, without knowing about the correct TED behaviour at all.
|
|
Posted By
Luca on 2018-03-17 03:06:53
| Re: Starting off again
$FF1C/1D would have been my answer too, although I initially didn't understand which kind of split screen has been taking in count. At first glance, I've got you were talking about something very hard like the argument I've pushed years ago...
|
|
Posted By
Gaia on 2018-03-16 19:00:52
| Re: Starting off again
You can also do split screens by overwriting FF1C/D (vertical line) to fool the TED where it is on the screen but it's a bit more tricky as certain line values (204-205) are a bit "hysterical" so it's best not to mess with them. Vertical sub address (FF1F) still needs to be kept in sync if you intend to do smooth scrolling as well.
|
|
Posted By
bubis on 2018-03-16 08:38:34
| Re: Starting off again
It is all the question of time guys. I am juggling my time between family, carrer and my demo project among other things. I will try fix that info about FLI at least, the occurance of badlines are not where it states.
|
|
Posted By
Mad on 2018-03-15 23:11:39
| Re: Starting off again
Wow great. Finally an explanation which takes all the registers into account and even includes the second badline. Thanx for that! This will get quite handy in the next projects. Great to see it here!
|
|
Posted By
Luca on 2018-03-15 19:55:52
| Re: Starting off again
bubis the best would have to be a proper entry about how to manage with badlines in the Plus/4 Encyclopedia. We still have some hints about that in the FLI fx chapter, but a clean one from scratch would be absolutely desirable.
|
|
Posted By
Doug on 2018-03-15 19:08:34
| Re: Starting off again
Hi Bubis,
Thanks - that's really useful information! Its driving me up the wall that what should be such a simple thing is far from it. I'll keep hacking away, and your information should help me a lot!
Cheers, Doug
|
|
Posted By
bubis on 2018-03-15 17:37:49
| Re: Starting off again
I have never done split screens and (different) vertical scroll but I think I know what is the issue here. The issue is $FF1F not being in sych with $FF06.
Some concepts first to make sure we are on the same page:
Vertical scroll register (vscroll) = lower 3 bits of $FF06 Vertical subaddress register (vsub) = lower 3 bits of $FF1F Vertical line register (vline) = $FF1D + the 9th bit is in the lowest bit of $FF1C.
The vsub register drives which pixel row of the possible 8 of a char is actually rendered to the screen. TED initializes it to be 7 when vline = 0 and increments it at the beginning of each raster line after the first badline occurs. The first badline occures when vline&7 = vscroll and a second badline occures in the next rasterline and this is repeated until the bottom of the window. So, on a standard screen when vscroll = 3 the first badline occures in rasterline 3, vsub is incremented at the beginning of the next rasterline and becomes 0 (TED will keep incrementing it from here on), the second badline is triggered and TED starts rendering the (first) character row (and the window). This is all what TED does to keep the occurrence of the second badline (when a new character row starts rendering) and the restart of the vsub register in sync.
So, if you change vscroll on the way, you also need to change vsub to keep them in sync, otherwise you will have those strange broken character lines where the content is changing in every character row but vsub is not in sync, so the top rasterline of the char is not where is should be.
|
|
Posted By
MMS on 2018-03-15 16:26:47
| Re: Starting off again
|
|
Posted By
RKSoft on 2018-03-15 11:24:44
| Re: Starting off again
@KiCHY Timeslip and Boulder Dash looking great. There is a topic at Forum64 about Boulderdash where you can show your mock-up.
|
|
Posted By
KiCHY on 2018-03-14 12:46:08
| Re: Starting off again
/OFFTOPIC on Talking about Timeslip reminded me something and triggered an instant blog update... https://kichydesign.blogspot.com/ /OFFTOPIC off
|
|
Posted By
MIK on 2018-03-15 04:40:16
| Re: Starting off again
Totally understandable it will take time Doug as families, work, real world commitments as well as good health come way before side hobbies. It can feel like a lot of pressure once the cat is out of the bag but yeah in your own good time. Surprise is always the best way as we don't know it's coming, like Pets Rescue.
Back in the good old days some of the fastest and smoothest full screen horizontal scrolling games came in the from of Starforce Nova, XCellor8, Phantom and Auto Zone. Horizontal Split as well as 2 player was Summer Events with it's 'full screen' Butterfly Swimming & normal size screen Cycling.
Horizontal again and 1 player you could almost say Time Slip was split but really it only uses part of the screen. Many other classics come under this half screen scrolling such as kikstart, Power Ball, Battle Star as well as defender clones such as Sky Hawk, Bandits At Zero and many many more like Moon Buggy ect...
I used to think.., of all the machines out there in the 1980's the C16/Plus4 was KING for home computing horizontal scrolling smoothness. You could argue there wasn't much on the screen back then to scroll but it was ultra slick when done properly.
Virtical Scrolling from back in the day but all 1 player was Terra Cognita, Terra Nova, Tomcat and BMX Racers. Legionnaire would slow down if there was too much on the screen at the end of a level, Gun Law used about a 3rd of the screen but I'm sure this was only done to limit the amount of bad guys to a max of 3 at any one time... Olympic Skier scrolled up lol.
The only 2 player virtical I recall was Ikari Warriors but that was rather slow and very limited as a game.
As Csabo said Tom Thumb was multi directional and there was another..., Thrust. The original Thrust did flicker but the author fixed that a number of years back and released a revised version which can be grabbed on the game page. It's known as Thrust Revised, under Revised Version on the page.
If your after idea's. I'd love to see a C64 Ikari Warriors type game, that was ace on C64 and yeah Ikari Warriors was better than Commando! Also and I'm not sure if it's your thing..., a roguelike dungeon game would be neat.
|
|
Posted By
George on 2018-03-13 21:54:04
| Re: Starting off again
Doug, Great News! Go for the next "Prospector Pete", the Super Mario of our System!
|
|
Posted By
Csabo on 2018-03-13 19:51:24
| Re: Starting off again
It really depends on what we're talking about specifically, but Tom Thumb is the first example that comes to mind. It's a 16K game from 1986. It pulls off horizontal and vertical scrolling with a split screen nicely.
|
|
Posted By
Mad on 2018-03-14 08:42:04
| Re: Starting off again
Hey Doug,
at Pets Rescue we used two techniques. One is using a max 8 pixel fld between two screen areas. So we have some unusable area (8 pix) between the two splits. (Perhaps this is not usable for a real split screen since it requires some area beeing just singlecolored e.g. with just the background color.)
At another place in the game we triggered a badline directly on the required rasterposition. I didn't find out how to trigger both required badlines (color ram, screen ram) to the right times, with all this scrolling stuff going on. So there the first character line of the second split screen doesn't have the right color ram data. Which is no problem since we used just the 3 other colors there. So you actually have to take care of two badlines if you do that stuff ..
I think you need in any case a rasterstabilizer, we did it there just using a double irq.
I know there are experts here. How's about bubis? I know he knows this badline stuff to the max. I know many other plus/4 coders know this badline stuff, too. Let's see who joins this thread to help!
|
|
Posted By
Doug on 2018-03-13 18:54:08
| Re: Starting off again
Thanks for all the support guys - I really appreciate it. Its so different to how it was back in the 80's: I felt like I was the only person paying the +4 any attention (all my C64 buddies kept wondering what I was doing!). I had to find my way around it completely blind. At least now I've got a wealth of experts to help!
I'm going to be taking things slow and steady, and I'll try to sort stuff out myself before asking for help: its part of the fun! Having said that, whilst I'm kicking ideas around, what's the story with vertical smooth scrolling and split screens? I seem to remember (and this is a very distant memory!) that horizontal scrolling with a split was OK, but there were issues with vertical scrolling. I can't honestly remember the problem I had, but I do remember giving up. Maybe it was bad line related, or something else? It could be the split was jaggy or was unstable. Just checking to see if this is a real issue, or not (I've not tried anything yet). Has it been done OK since? What are the tricks?
Thanks for any help! Doug
|
|
Posted By
Mad on 2018-03-13 15:30:37
| Re: Starting off again
Great news, Doug! All the best!
|
|
Posted By
Csabo on 2018-03-13 14:50:11
| Re: Starting off again
Very happy to hear it, good luck
|
|
Posted By
MIK on 2018-03-13 13:29:41
| Re: Starting off again
Wow, best of luck Doug!!
|
|
Posted By
bubis on 2018-03-13 10:36:00
| Re: Starting off again
Yes, we are here to help any time. Please don't be shy to ping us on Facebook, Skype or by any other means, or just PM us through this site.
Also, your game doesn't have to be a one-filer, you can use Bitfire just like Pets Rescure do. It is easy to use, but I can explain it all if you want.
|
|
Posted By
Lavina on 2018-03-13 09:09:03
| Re: Starting off again
wow most exciting news of this century so far Ok, not counting the finding of higgs bozon.
|
|
Posted By
Luca on 2018-03-13 07:31:45
| Re: Starting off again
Good journey into TED again! Don't forget that we're here and you can always find someone available to supply help in several ways.
|
|
Posted By
Doug on 2018-03-13 06:24:41
| Starting off again
The initial phase is over. I've got a development environment I'm happy with. I've decided what the game is going to be, and I've started prototyping. It will take a while, but I've started ....
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |