Jump to content
IGNORED

Ghostbusters - Development Diary


TheMole

Recommended Posts

16 hours ago, Asmusr said:

I like the big car with the smooth movement a lot. Almost as good as the C64. I agree with others that it's difficult to navigate around corners on the map.

Fair enough, that's three votes against the movement now, I'll look at this before the final release!

  • Like 2
Link to comment
Share on other sites

22 hours ago, TheMole said:

Fair enough, that's three votes against the movement now, I'll look at this before the final release!

Make it five.  I had a couple of people try playing it yesterday at VCF and they commented on the unforgiving nature of the movement.  One thing I noticed is it seems to not like the joystick pushed in an ordinal direction.  It kind-of makes sense, if you are at an intersection and press the joystick in the NE direction, which way are you really trying to go?

 

I like the ghost vacuum action in this rendition.

  • Like 3
Link to comment
Share on other sites

17 hours ago, OLD CS1 said:

One thing I noticed is it seems to not like the joystick pushed in an ordinal direction.  It kind-of makes sense, if you are at an intersection and press the joystick in the NE direction, which way are you really trying to go?

I could take a cue from Pacman. There, the direction you're not traveling in will take precedense. So if you're traveling westward and your holding the joystick in the NW direction when coming up to an intersection where North is a valid direction, Pacman will turn North. Of course, Pacman keeps moving even if you stop pressing the joystick in the current direction until he hits a wall, so some modification will be needed, but I think that would be good strategy.

 

In watching some longplays of the C64 version, I notice the logo sometimes "cuts the corner"... I've never had that happen when I play the game. I guess it also depends on the players idiosyncratic way of using the joystick. Good thing you guys are playtesting this thing!

 

  • Like 6
Link to comment
Share on other sites

Some unrelated progress, I wanted to get working on the account and shop systems... what do you guys think, does this look work?

 

I wanted to do something a bit more polished than the original, but still keep the teletype style feeling...

  • Like 14
Link to comment
Share on other sites

Yep. Classy. Love the Philips look! Just don't make it beep with every character typed!

 

I have traumatic memories of my 800XL beeping with every single keypress in BASIC. It was like a dentists drill. It wasn't a nice gentle decaying "ping!". It was like the TI BASIC "HONK" but much worse. Why didn't I just turn the TV volume down? Atari carried the legacy on with the Atari ST. At least it went ping. But you still wanted to throw the computer through a window. A pox on all their houses! :x

  • Like 1
  • Haha 2
Link to comment
Share on other sites

22 hours ago, TheMole said:

I wanted to do something a bit more polished than the original, but still keep the teletype style feeling...

Slick!

6 hours ago, Willsy said:

I have traumatic memories of my 800XL beeping with every single keypress in BASIC.

Perhaps a "click" instead?

  • Like 4
Link to comment
Share on other sites

Finished the account system, I'm glad to say that if you've ever played the game on the C64 or the MSX and ended up with a nice fat account, you'll be able to use it in this version as well. The account obfuscation algorithm is quite well documented, so it seemed like the right thing to do.

Working on the shop now, although I don't think I can get this finished before I'll be traveling. I'll be away from any sort of computer for about a month. After that, it should just be some finishing touches here and there before I can officially release it.

 

I'll be starting a poll before I leave to gauge interest for a physical release, perhaps start taking pre-orders. I've been looking at things like the boxes, manuals, getting boards manufactured (and populated), etc... haven't got a solution for shells yet, so if anyone has any ideas, please let me know.

 

Lastly, let me leave you all with this picture, showcasing the different cars you'll be able to choose in the game:

gb_cars_test.png.1591c0fa47fa7f23aebb12dd32838216.png

 

I definitely wanted to do better than what you'd see on the MSX. The beetle was especially challenging, but comparing to the other 8 bit versions below I'm quite happy with the results:

image.thumb.png.f49df01245abfa4d0fad01b72cbedd06.png

(C64, Atari 800, Amstrad CPC,

IBM PCJr, Apple ][, ZX Spectrum,

MSX, NES, Atari 2600, Sega Master System)

 

  • Like 9
Link to comment
Share on other sites

34 minutes ago, OLD CS1 said:

Since you are not putting a header in every bank, you will need a cartridge that starts up in a known disposition.  @Ksarul and @acadiel can help with that.

Yeah, I remember @Ksarul talking about there being SN74x latches that reliable start up in either the first or last bank upon power on. But I'm looking at the possibility of perhaps drawing up an SMD version of the 512k cart design to keep manufacturing costs down.

 

  • Like 2
Link to comment
Share on other sites

10 hours ago, TheMole said:

Yeah, I remember @Ksarul talking about there being SN74x latches that reliable start up in either the first or last bank upon power on. But I'm looking at the possibility of perhaps drawing up an SMD version of the 512k cart design to keep manufacturing costs down.

 

If you make a SMD version of the cart, please let me know - I'd love to have one.  I've been collecting all the variants since I made the original ones just to appreciate the diversity in innovation.  It's pretty darn awesome.  Plus, I know how difficult SMD is, and appreciate the work going into it, so I'd love to see a board version as SMD.  (BTW, are there parallel SMD 5V 27/28C040s or something equivalent?)

  • Like 2
Link to comment
Share on other sites

7 hours ago, OLD CS1 said:

Plus, as I am not in the field, so to speak, I would like to understand how an SMD board will reduce production costs.  It sounds interesting.

Most PCB houses will happily stuff (readily available) SMD components for a very small fee, since this process can be almost entirely automated. Doing the same with through-hole components is more expensive (and why most of us do it ourselves). I also believe (but I'm not a specialist, I have a friend helping me out with the hardware who knows this stuff way better than I do) that if you can avoid the need to drill holes, the PCBs themselves tend to be cheaper as well.

 

*edit*

The whole reason for going SMD is not cost as such though, of course it would be cheaper to go throughhole and solder them ourselves, but the goal is to not have to solder each board ourselves. We will likely build a programming jig with pogo pins connecting to pads on the PCB to flash the EPROM in situ. That way, PCBWay or JLCPCB can do the full assembly, we just pop each cart in the jig and program it with the appropriate ROM before mounting it in a shell.

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

7 hours ago, acadiel said:

(BTW, are there parallel SMD 5V 27/28C040s or something equivalent?)

The at28c040 is available in an LCC package, which - as far as I understand - can be surfacemounted. I don't see anything in the datasheets that would indicate the LCC version is not TTL compatible. That's the component we're looking at, if you or anyone else has tried these before and they don't work for some reason, do let me know! :)

 

 

  • Like 1
Link to comment
Share on other sites

20 hours ago, TheMole said:

Yeah, I remember @Ksarul talking about there being SN74x latches that reliable start up in either the first or last bank upon power on. But I'm looking at the possibility of perhaps drawing up an SMD version of the 512k cart design to keep manufacturing costs down.

 

Remember there is more than just powerup - if someone hits FCTN-=, that doesn't reset the latch. Unless you trap that in your software and do it manually, then you can set the latch before rebooting. It's kind of annoying to hit quit and then have to power cycle the machine to launch the cartridge again. Bear in mind that FCTN-= is a soft reset, too, so even a latch with a reset line won't benefit from it.

 

If you don't want to put a header in every bank, then I strongly suggest you disable interrupts (or at least disable the interrupt QUIT check) and handle the QUIT key sequence yourself so you can reset the latch. ;) This still won't help people who use a hardware reset such as widget or my ps/2 keyboard, but that should be the minority. ;)

 

 

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, TheMole said:

The whole reason for going SMD is not cost as such though, of course it would be cheaper to go throughhole and solder them ourselves, but the goal is to not have to solder each board ourselves. We will likely build a programming jig with pogo pins connecting to pads on the PCB to flash the EPROM in situ. That way, PCBWay or JLCPCB can do the full assembly, we just pop each cart in the jig and program it with the appropriate ROM before mounting it in a shell.

A lot of the time, getting the ROMs pre-flashed is not much more expensive, either, so you might look at saving that programming step too ;) I wish I had for Dragon's Lair ;)

 

  • Like 1
Link to comment
Share on other sites

20 minutes ago, Tursi said:

Remember there is more than just powerup - if someone hits FCTN-=, that doesn't reset the latch. Unless you trap that in your software and do it manually, then you can set the latch before rebooting. It's kind of annoying to hit quit and then have to power cycle the machine to launch the cartridge again. Bear in mind that FCTN-= is a soft reset, too, so even a latch with a reset line won't benefit from it.

 

If you don't want to put a header in every bank, then I strongly suggest you disable interrupts (or at least disable the interrupt QUIT check) and handle the QUIT key sequence yourself so you can reset the latch. ;) This still won't help people who use a hardware reset such as widget or my ps/2 keyboard, but that should be the minority. ;)

 

 

 

 

That's fair. I do disable fctn-= and most of the time don't run interrupts. I also do have headers in all banks that run code, banks 0, 1, 2, 3 and 4, as well as the last bank. The middel banks contain continuous data and I don't want to deal with the hassle of taking into account the header when copying that data to RAM or VRAM. I'm not sure if a physical reset switch is also considered a soft-reset (I would think not), but in most cases the cart should revert to bank0 at start-up just fine. If you happen to force a reset - somehow - mid "block copy", you might be out of luck though.

 

  • Like 2
Link to comment
Share on other sites

2 hours ago, Tursi said:

A lot of the time, getting the ROMs pre-flashed is not much more expensive, either, so you might look at saving that programming step too ;) I wish I had for Dragon's Lair ;)

 

Also makes me wonder - if he wants to SMT mount, and use 3.3V, and level shifters, how many lines total do we need to level shift here?  

 

- A3 to A15 (13 pins)

- D0 to D7 (8 pins)

- ROMG* (ROM access - 1 pin)

- WE* (bank switching - 1 pin)

- RESET (Do we need to level shift this for balancing things?  Or since it's "outside" in the 5V realm, are we ok?)

- VCC (I'm guessing this is a 3.3V regulator and not a level shifter with GND)

 

Rough guessing - 13 + 8 + 1 + 1 = 23 pins need to be level shifted if the SMT device isn't 5V tolerant.  Or, find an IC that might be out of spec tolerant like a lot of those reproduction carts that Aliexpress seems to sell for Nintendo systems which don't even use level shifters (and use 3.3V EEPROMs.)   TXB0108 is an 8 bit 3.3V to 5V level shifter (you'd need three of them).  I wonder if there's a larger one (maybe a 16 bit one plus a TXB0108? or a 24 bit one?)  I think I remember talking about that with either you or @Ksarul a long while back when we were discussing a SMT 512K board or SMT UberGROM.  It definitely would make the price go down, but we would have to get someone who could do SMT to either build them or get a bunch made by someone.
 

Link to comment
Share on other sites

On 8/5/2023 at 6:05 AM, TheMole said:

 

That's fair. I do disable fctn-= and most of the time don't run interrupts. I also do have headers in all banks that run code, banks 0, 1, 2, 3 and 4, as well as the last bank. The middel banks contain continuous data and I don't want to deal with the hassle of taking into account the header when copying that data to RAM or VRAM. I'm not sure if a physical reset switch is also considered a soft-reset (I would think not), but in most cases the cart should revert to bank0 at start-up just fine. If you happen to force a reset - somehow - mid "block copy", you might be out of luck though.

Yeah, that sorta thing is likely fine ;) I mean, with the current size of the market it all edge cases anymore, but I did run into that annoyance a few times. It's why I just started putting headers in every bank. I just reserve the first 32 bytes and be done with it - you can get away with less. You only need up till that first bank switch instruction ;)

 

Link to comment
Share on other sites

On 8/5/2023 at 8:50 AM, acadiel said:

Also makes me wonder - if he wants to SMT mount, and use 3.3V, and level shifters, how many lines total do we need to level shift here?  

 

- A3 to A15 (13 pins)

- D0 to D7 (8 pins)

- ROMG* (ROM access - 1 pin)

- WE* (bank switching - 1 pin)

- RESET (Do we need to level shift this for balancing things?  Or since it's "outside" in the 5V realm, are we ok?)

- VCC (I'm guessing this is a 3.3V regulator and not a level shifter with GND)

This was one of the big reasons I went with a 5v tolerant CPLD - it handled all the level shifting as well as being the latch and GROM emulation all in one chip. Unfortunately, 5v tolerant CPLDs are getting hard to come by too. 😕

 

  • Like 1
Link to comment
Share on other sites

I have a board design that Marc Hull and I used for the Tex Turbo cartridges that "always" starts in the first bank. It uses two chips and a transistor to set the starting bank (instead of the 74LS378), with the switching being the typical non-inverted mode. At present, the boards were only used in the Tex-Turbo cartridges, but I do have more of them on hand.

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