Jump to content
IGNORED

Ghostbusters - Development Diary


TheMole

Recommended Posts

9 hours ago, TheMole said:

I updated the git repository with a number of fixes to the build system based on @JasonACT's feedback about building on Windows. I don't have Windows to test on, but hopefully the scripts should be a bit more cross-platform compatible now. I also made a number of quality of life improvements to the build system in general.

Here are the changes I needed to do to make the new version build on Windows (with the old 32bit version of MinGW/msys):

 

cart.ld: 5 lines with /*.a need to be duplicated to have backslashes (I put them first)
		persistent\\*.a:*(.text);
		persistent/*.a:*(.text); 

create_resorucedefs.sh: need to cut text differently due to 32bit numers instead of 64bit numbers
# Create arrays
#LOCATIONS_START=($(cat $MAPFILE | grep _binary_resources | grep _dat_start | cut -b 27-34))
#LOCATIONS_END=($(cat $MAPFILE | grep _binary_resources | grep _dat_end | cut -b 27-34))
#NAMES_START=($(cat $MAPFILE | grep _binary_resources | grep _dat_start | cut -b 51-))
LOCATIONS_START=($(cat $MAPFILE | grep _binary_resources | grep _dat_start | cut -b 19-26))
LOCATIONS_END=($(cat $MAPFILE | grep _binary_resources | grep _dat_end | cut -b 19-26))
NAMES_START=($(cat $MAPFILE | grep _binary_resources | grep _dat_start | cut -b 43-))

Makefile: need to include -fno-function-cse to get bank3 within the 8KB limit
# Compiler flags
CCFLAGS= $(LIBRARIES) -std=c99 -Werror -Wall -Os -s -Iinclude -I$(INCLUDE_PATH) -c -fno-function-cse

 

(Along with updating the gcc/xdt99 paths in Makefile and Makefile.res)

Link to comment
Share on other sites

I tested it on my real machine, with my Pico device, and it works well...  When it's on its own.  So, great work, I really like the overrides.

 

When I have Terminal Emulator II plugged in as a second cartridge though, the ROM is paged out due to the GROM scan, so I don't get press 2 for Ghostbusters - I instead get press 2 for Review Module Library.  Reviewing it, it goes to the TEII menu - but the text (which was black) is all orange now and remains that way throughout the review process.  Interestingly, when I load a ROM only file with TEII as CART2, I don't get the review option at all, only the ROM menu item.  I knew that before, and it doesn't bother me, if there's shortcomings with the original TI scan code - then that's probably still a win for usability.

 

@TheMole I don't think any of this really matters for Ghostbusters, it's just interesting, with you having the start-up routine in GROM and the menu in ROM.

  • Like 1
Link to comment
Share on other sites

Okay, this is what I see on the FinalGrom menu:

WIN_20240316_21_44_15_Pro.thumb.jpg.eec3a348382f7df7682da1338cb5441d.jpg

Before I didn't notice the blank A item above the B parent directory item.  Seems like the custom font messes up the directory sorting, and since there are no character patterns defined for the custom font, it appears blank.  Selecting A does load the Ghostbusters game properly!  But resetting console doesn't run the custom load routine; in fact, nothing appears in the menu at all, only "1 FOR TI BASIC".

 

@HOME AUTOMATION has a fix for the reset and menu. I tested it and it works.

Edited by PeteE
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

21 minutes ago, HOME AUTOMATION said:

I couldn't test these myself, as I've no TI, setup right now.:twisted:

@PeteE, says they're good enough to post...

 

gbustg.bin 8 kB · 3 downloads

gbustc.bin 512 kB · 3 downloads

 

...That's good enough for me.:cool:

So what are the changes you made? Pad the GROM file to 8k and rename gbust8.bin to gbustc.bin? Anything else?

Link to comment
Share on other sites

I have no idea why it would change the color of the rest of the fonts after reviewing the module library. I actually don't have code in the GROM that does that :).

Also, why does it show the REVIEW MODULE LIBRARY option? Is this specific to your pico device, or did I mess something up?

Link to comment
Share on other sites

2 minutes ago, TheMole said:

Also, why does it show the REVIEW MODULE LIBRARY option? Is this specific to your pico device, or did I mess something up?

That's my device loaded up with a 2nd cartridge (TEII) at the next available GROM address - nothing to do with you!

  • Like 2
Link to comment
Share on other sites

2 minutes ago, HOME AUTOMATION said:

Will you reveal to me; how you made the GROM file?:-D

Nothing secret about that! :) 

 

I compile this file: https://github.com/themole-ti/ghostbusters/blob/main/startgrom.gpl

Using Ralph's xga99:

xga99.py startgrom.gpl -o gbustg.bin

 

I've just added the -B flag to pad it out to 8k, which should work... I hope... :) 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

image.thumb.jpeg.e3d9a790826a6b2d276fb5a8ad674709.jpeg

 

image.thumb.jpeg.baf31ba455de16d1390d391011ecfefe.jpeg

Little of this... little of that...

Looks like I copied the programs NAME LIST ENTRY...

 

00 00 60 1e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 00 00 00 04 60 78 50 d0 60 a0 a0 02 41 01 00 13 4a c8 0b a0 a4 02 0d 23 8c 02 08 84 00 02 06 01 00 c0 60 a0 9a 16 02 04 c7 10 04 78 06 a0 9f 17 3b 07 07 02

 

...and perhaps a few extra bytes.:roll: From the ROM, and copied them to the GROM, at >6150. With the entry address changed to >61B0.

 

At >61B0, I XML(0F), to the PC, vector, at CPU >6010(70).

 

>6010, points execution to >601E, where you branch to >7850.

 

And possibly lastly, I added >6150, to the HEADER's PROGRAM list pointer(>6006).

 

Then I zeroed-out the ROM HEADER.:-D

 

Hope that helps a little.

 

I'll look at startgrom.gpl, after I get some rest.;-)

Edited by HOME AUTOMATION
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Second attempt, these should work on the FinalGrom99. But as pointed out by @PeteE, the program name will be blank and shown at the top of the list (above the '..' item). Unfortunately, the trick I'm using here obfuscates the program name. There's no real way around it, the module library menu uses the uppercase characters, the finalgrom99 uses the lowercase characters for its logo. So it's impossible to do bespoke fonts/colors and have it appear properly in the FinalGrom99 menu... Maybe @ralphb has any ideas...

 

Also: small bugfix in the game, you actually got the marshmallow sensor functionality for free even if you didn't buy the item in the store. That has been fixed now.

 

gbust.rpk gbustc.bin gbustg.bin

  • Like 7
  • Thanks 3
Link to comment
Share on other sites

7 hours ago, PeteE said:

Okay, this is what I see on the FinalGrom menu:

WIN_20240316_21_44_15_Pro.thumb.jpg.eec3a348382f7df7682da1338cb5441d.jpg

Before I didn't notice the blank A item above the B parent directory item.  Seems like the custom font messes up the directory sorting, and since there are no character patterns defined for the custom font, it appears blank.  Selecting A does load the Ghostbusters game properly!  But resetting console doesn't run the custom load routine; in fact, nothing appears in the menu at all, only "1 FOR TI BASIC".

 

@HOME AUTOMATION has a fix for the reset and menu. I tested it and it works.

 

I downloaded the latest, the TI titel screen and the menu works perfect on my TI, but still in FG99 the game is on A. without a name just like the picture PeteE uploaded. Can that be fixed too?

Link to comment
Share on other sites

Posted (edited)
2 hours ago, Nick99 said:

I downloaded the latest, the TI titel screen and the menu works perfect on my TI, but still in FG99 the game is on A. without a name just like the picture PeteE uploaded. Can that be fixed too?

Unfortunately not (I think). That's what I was trying to explain in my previous post: I have to choose between it working properly in the finalgrom menu, or having the fancy startup screen.

I might end up building two variants: one for emulators and burning to cartridge (with the fancy menu), and one for the finalgrom (without the fancy menu).

Edited by TheMole
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, TheMole said:

Unfortunately not (I think). That's what I was trying to explain in my previous post: I have to choose between it working properly in the finalgrom menu, or having the fancy startup screen.

I might end up building two variants: one for emulators and burning to cartridge (with the fancy menu), and one for the finalgrom (without the fancy menu).

That's probably the only way to be universal.

 

The FinalGROM could run all startup functions when it builds the menu, but there's a very likely chance that a lot of combinations would cause other problems.

Could define a special format that the FinalGROM could look for, but then existing ones wouldn't see it anyway. Probably best to keep it a cartridges special feature :)

 

  • Like 2
Link to comment
Share on other sites

15 hours ago, Tursi said:

That's probably the only way to be universal.

 

The FinalGROM could run all startup functions when it builds the menu, but there's a very likely chance that a lot of combinations would cause other problems.

Could define a special format that the FinalGROM could look for, but then existing ones wouldn't see it anyway. Probably best to keep it a cartridges special feature :)

 

 

I think I've figured out a way. I'll try to code it up tomorrow, but I think that if I put a normal (boring) ROM header in bank 0, the finalgrom will see the title properly. Then, if I switch to bank 1 (or any other bank that doesn't contain the ROM header) in the GROM start-up routine, the TI OS will only see the program in the GROM header, which will be all fancied up. The one in bank 0 of the ROM will not be listed, so the menu will show the fancy font. Then, when the user selects the item from the list, the GPL code can first switch bank 0 back in before performing the XML call to start the actual game.

 

This should allow the finalgrom to properly list the game and jump straight into the ROM code from the finalgrom menu, but if you reset the TI you should still get the fancy master title screen! And I should be able to use the exact same image regardless of the method of distribution.

  • Like 5
Link to comment
Share on other sites

I just tested your great game and i found a display problem using the „Martin“ account with 123700$, Look to the last line:IMG_0200.thumb.jpeg.7a407432bc219dd277ac9dfc5a027095.jpeg

Afte a while the line will be correct:IMG_0201.thumb.jpeg.ddd74c9a69a97a5bf5cf4c16431ad1f4.jpeg

going to the ghost scene will be ok

IMG_0202.thumb.jpeg.19838d70f8398d578769327369911ad7.jpeg
But in this scene it starts an endless loop …IMG_0203.thumb.jpeg.d6ae0c71becc365e8128e77b98300a73.jpeg

pressing Space works:IMG_0206.thumb.jpeg.134eda589f83120d78cbcce44738b653.jpeg

But the pk counter …IMG_0208.thumb.jpeg.fec5529437bd11dc4473f7c73f17b1eb.jpeg

Counts endless…

Link to comment
Share on other sites

On 3/16/2024 at 8:10 AM, TheMole said:

 

I updated the git repository with a number of fixes to the build system based on @JasonACT's feedback about building on Windows. I don't have Windows to test on, but hopefully the scripts should be a bit more cross-platform compatible now. I also made a number of quality of life improvements to the build system in general.

 

A more user-facing change that I've made is that the cartridge type has changed to a combined ROM/GROM cartridge. This allows me to ensure the cartridge starts up in a known state and is part of my prep work for releasing a physical cartridge version. It also allows me to play around with the initial presentation a little bit:

Screenshot2024-03-16at21_00_02.thumb.png.1ee26b37faf6aaf8419066acd215be4f.pngScreenshot2024-03-16at21_00_12.thumb.png.3e8513008eff3609a1e818b971caa920.png

 

I always wondered why other games didn't at least spruce up the item selection menu like this, a Parsec cartridge that uses the Parsec font from the label in the menu selection screen would be super cool, I think. I know some people hate cartridges and peripherals that mess with the title screen, and I'm not sure about some of the more intrusive changes. I'll definitely keep the stylized menu selection item, but I'd be interested to hear your opinions about the logo/background shennanigans :)

 

So, in order to load this cartridge in js99er, make sure you select both gbustg.bin and gbust8.bin when loading a cartridge (or just use the .rpk). On classic99 and bulwip, picking gbust8.bin should just work. I was not able to get the .rpk to work in mame, so if @mizapf knows what I've done wrong, I'd sure appreciate the help!

 

* edit * uploaded the fixed .rpk here, as per mizapf's post! So feel free to download the .rpk from this post...

gbustg.bin 268 B · 18 downloads gbust8.bin 512 kB · 16 downloads gbust.rpk 80.5 kB · 1 download

I had spiced up my supernotes program with a similar type of menu using graphical colorful characters. 

  • Like 1
Link to comment
Share on other sites

Am I missing instructions to play the game, or is something broken here?

 

I can drive through the map, leaving a dotted trail, then I press the joystick button and see the car from above, the road seems to move, but the only thing I can do is to steer left or right. Pressing the joystick button does not do anything. After some time, the car stops at the right. Then I see a person on the right in front of the building, and two seconds later I am back on the road.

Link to comment
Share on other sites

19 minutes ago, mizapf said:

Am I missing instructions to play the game, or is something broken here?

 

I can drive through the map, leaving a dotted trail, then I press the joystick button and see the car from above, the road seems to move, but the only thing I can do is to steer left or right. Pressing the joystick button does not do anything. After some time, the car stops at the right. Then I see a person on the right in front of the building, and two seconds later I am back on the road.

You are missing something.

 

Driving to the haunting is nothing special.  But, if while laying your dot trail you pass over one of the ghosts (roamers) moving toward the center building (ZUUL,) you will see it appear at some point in the road.  You then have to move the car to touch it and hold the fire button down to activate the ghost vacuum, if you purchased one.

 

Be careful of trying to get ghosts near the end of your dot trail.  Many times the ghost will come on-screen as you are moving over to park, but you cannot get it because you cannot move the car to touch it.

 

This might help.  It is from the C64 version.

Ghost Busters Instructions (Commodore 64).pdf

 

Oh, and if you just see one of the guys on the right then go right back to the map screen, it means you were late and the slimer got away.

  • Like 3
Link to comment
Share on other sites

I haven't seen a game manual ... as I know the original game well, I didn't look for one either.

 

You may have a look at our XB Ghostbusters One-Page Manual, there are only minor differences ...

 

 

Map: If you catch a "Roamer" ghost on the map it will show up during your drive. If you bought the vacuum, you may catch it there.

 

Building: You need to drive to a fashing building to catch a ghost. If no ghost is present, you will end up on the map.

 

 

 

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