Jump to content
IGNORED

Ghostbusters - Development Diary


TheMole

Recommended Posts

46 minutes ago, TheMole said:

Oh, wow, you're right!

It's been so long, but now that you mention it, I do remember isolating the MPY fix and creating a v1.12a for myself to get things to work!

I just did it too - I now have a 1.12a - it's only 3 lines that need a tiny edit each.

 

47 minutes ago, TheMole said:

I noticed that if I flag certain functions that are only called from within a given translation unit as `static`, the binary tends to get quite a bit smaller. I just don't understand why that is though, so I need to dig a little bit deeper to make sure I know what I'm doing :). Maybe it uses a more optimized function prolog and epilog if it knows a function can't be called from outside of the translation unit?

I gets inlined if you asked for it or not, I'm fairly sure, I'm guessing as long as it's not called lots of times and it's not huge.

 

GBTest.thumb.png.0beef2d0f968fef781e05d61176803fc.png

Oh, and this ghost has been trapped for nearly 3 hours - I recharge the battery packs at the start of the loop and I've limited how high it can fly, along with disabling the PK counter.  So I'm going to say "no issues with the TMS9918A".  I'll let it run a bit longer though.

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
On 11/6/2023 at 6:18 AM, OLD CS1 said:

The shop-stopper happened after I missed a ghost, it slimed me but I just laid there on the ground and the game hung.  It did not freeze, as the BGM kept running and I can call up my stats with SPACE.

I just ran into this myself while playtesting on my real 4a! Seeing it for myself made it click immediately in my head. Basically, the "haunt" timer for the building ran out just after you got slimed, but before the ghost managed to leave the screen. That screws up the state machine, making you unable to leave until the next time the building gets haunted.

 

Should be an easy fix!

  • Like 5
Link to comment
Share on other sites

  • 3 weeks later...

Here's a new release candidate, I believe it fixes the bug originally reported by @OLD CS1 where the game got stuck after getting slimed by a ghost when the ghosts timer ran out after sliming the player, but before having dissapeared off the screen.

 

I've spent quite some time playing it on both real hardware as well as in different emulators and am not seeing any other game breaking bugs, so with a bit of luck, this can be considered the final release.

 

ghostbusters8.bin ghostbusters.rpk

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

On 1/21/2024 at 10:34 AM, TheMole said:

Here's a new release candidate, I believe it fixes the bug originally reported by @OLD CS1 where the game got stuck after getting slimed by a ghost when the ghosts timer ran out after sliming the player, but before having dissapeared off the screen.

 

I've spent quite some time playing it on both real hardware as well as in different emulators and am not seeing any other game breaking bugs, so with a bit of luck, this can be considered the final release.

 

ghostbusters8.bin 512 kB · 23 downloads ghostbusters.rpk 80.17 kB · 8 downloads

The .bin file freezes Classic99 for me but the .rpk works fine in MAME.

Link to comment
Share on other sites

First time I've played it since one of the earliest releases - beautiful presentation and plays well! 

 

Only thing I noticed was when I crossed the streams the message was cut off before the screen went back to the map (it finished reporting there, so not a big deal, but it surprised me.)

 

  • Like 1
Link to comment
Share on other sites

6 hours ago, Tursi said:

First time I've played it since one of the earliest releases - beautiful presentation and plays well! 

 

Only thing I noticed was when I crossed the streams the message was cut off before the screen went back to the map (it finished reporting there, so not a big deal, but it surprised me.)

 

Yeah, I found the wait a little bit too long for the entire string to scroll by, so I decided it was better this way. Personal preference, I think :).

 

Thanks for the kind words!

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

  • 4 weeks later...

Hi @TheMole, I've built ghostbusters and am trying to run it on my own emulator, because, you know, I just like to be awkward.  It's not running yet (I'm still trying to figure out the bank switching)

 

But I've noticed at startup, it does this:

 

601C:0209 LI    9,>000A                                     
6020:04D9 CLR   *9                      
6022:0460 B     @>7854                  
7854:064A DECT  10                      
7856:C68B MOV   11,*10                  
7858:0300 LIMI  >0000                                               
785C:02E0 LWPI  >8300                                     
7860:06A0 BL    @>7758                  
7758:0201 LI    1,>BABE                             


Which doesn't seem to have any adverse effects, but I'm not sure why it writes to >000A?  I think the assembler is not doing what you intend with "LI    r9, >ASM_ADDRESS "

Also, it saves the stack reg in >7854 and calls >7758 (which I guess is detect_32k) but both of these calls are BEFORE the stack frame is initialised, so are actually trampling on random memory locations (R10 = >07FE at this point in my environment, which is harmless for now).  It would be safer to init SP in cart_header.asm before calling _start.

Like I said not having any adverse effects for now, but could in future.

  • Like 5
Link to comment
Share on other sites

Hmmmm, let me look into that. The ASM_ADDRESS define is something I put in when I was messing about with my first few Geneve builds and has never been properly tested.

 

Setting the stack pointer in the cart header is a great idea, I will definitely make that change.

  • Like 4
Link to comment
Share on other sites

On 1/21/2024 at 11:34 AM, TheMole said:

Here's a new release candidate, I believe it fixes the bug originally reported by @OLD CS1 where the game got stuck after getting slimed by a ghost when the ghosts timer ran out after sliming the player, but before having dissapeared off the screen.

 

I've spent quite some time playing it on both real hardware as well as in different emulators and am not seeing any other game breaking bugs, so with a bit of luck, this can be considered the final release.

 

ghostbusters8.bin 512 kB · 40 downloads ghostbusters.rpk 80.17 kB · 11 downloads


This is a great port, it's very well-finished: the great 8 bit rendition of the tune, the street names on the map, the variety in buildings and ghosts, the car equipping part.. I love it! 
I remember playing this game on the Atari2600 when I was a little kid but it was a butchered version.. yours is at Master System level :thumbsup: 
 

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

20 hours ago, khanivore said:

Hi @TheMole, I've built ghostbusters and am trying to run it on my own emulator, because, you know, I just like to be awkward.  It's not running yet (I'm still trying to figure out the bank switching)

 

But I've noticed at startup, it does this:

601C:0209 LI    9,>000A                                     
6020:04D9 CLR   *9                      
6022:0460 B     @>7854                  
7854:064A DECT  10                      
7856:C68B MOV   11,*10                  
7858:0300 LIMI  >0000                                               
785C:02E0 LWPI  >8300                                     
7860:06A0 BL    @>7758                  
7758:0201 LI    1,>BABE                             


Which doesn't seem to have any adverse effects, but I'm not sure why it writes to >000A?  I think the assembler is not doing what you intend with "LI    r9, >ASM_ADDRESS "

ASM_ADDRESS is supposed to point at >6000, which is the cart address you need to write to to activate bank 0. I think most emulators and the FG99 just initialize cartrdige images in bank 0 anyway, so the fact that it doesn`t work isn`t going to create any issues in those scenarios. But not all physical cartridges start up in bank 0. So if anyone burns this to a ROM right now, it might not work correctly...

 

I need to tweak the build system anyway, to make sure it builds as easily on Windows as it does on POSIX systems, so I'll fix it shortly.

  • Like 3
Link to comment
Share on other sites

4 hours ago, Sergioz82 said:


This is a great port, it's very well-finished: the great 8 bit rendition of the tune, the street names on the map, the variety in buildings and ghosts, the car equipping part.. I love it! 
I remember playing this game on the Atari2600 when I was a little kid but it was a butchered version.. yours is at Master System level :thumbsup: 
 

Thank you so much!

Link to comment
Share on other sites

  • 3 weeks later...
Posted (edited)
On 2/27/2024 at 7:59 PM, TheMole said:

I need to tweak the build system anyway, to make sure it builds as easily on Windows as it does on POSIX systems, so I'll fix it shortly.

 

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 gbust8.bin gbust.rpk

Edited by TheMole
fixed .rpk
  • Like 11
  • Thanks 3
Link to comment
Share on other sites

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

 

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!

 

 

gbustg.bin 268 B · 2 downloads gbust8.bin 512 kB · 2 downloads gbust.rpk 80.5 kB · 3 downloads

That is amazing. I had no idea a cartridge could impact the title screens like that. I'm all for what you've done there, if you put a Ghostbusters cartridge in your system, you shouldn't be put off by the extra touches IMHO.  

  • Like 1
Link to comment
Share on other sites

2 hours ago, TheMole said:

 

Ho aggiornato il repository git con una serie di correzioni al sistema di compilazione basato su@JasonACTil feedback di sulla creazione su Windows. Non ho Windows su cui testare, ma spero che ora gli script siano un po' più compatibili con più piattaforme. Ho anche apportato una serie di miglioramenti alla qualità della vita del sistema di costruzione in generale.

 

Una modifica più rivolta all'utente che ho apportato è che il tipo di cartuccia è cambiato in una cartuccia combinata ROM/GROM. Ciò mi consente di garantire che la cartuccia si avvii in uno stato noto e fa parte del mio lavoro di preparazione per rilasciare una versione fisica della cartuccia. Mi permette anche di giocare un po' con la presentazione iniziale:

Schermata2024-03-16at21_00_02.thumb.png.1ee26b37faf6aaf8419066acd215be4f.pngSchermata2024-03-16at21_00_12.thumb.png.3e8513008eff3609a1e818b971caa920.png

 

Mi sono sempre chiesto perché altri giochi non abbiano almeno abbellito il menu di selezione degli elementi in questo modo, una cartuccia Parsec che utilizza il carattere Parsec dall'etichetta nella schermata di selezione del menu sarebbe fantastica, penso. So che alcune persone odiano le cartucce e le periferiche che rovinano la schermata del titolo, e non sono sicuro di alcuni dei cambiamenti più invadenti. Manterrò sicuramente la voce di selezione del menu stilizzata, ma mi piacerebbe sentire le tue opinioni sugli imbrogli del logo e dello sfondo :)

 

Quindi, per caricare questa cartuccia in js99er, assicurati di selezionare sia gbustg.bin che gbust8.bin quando carichi una cartuccia (o usa semplicemente .rpk). Su classic99 e bulwip, scegliere gbust8.bin dovrebbe funzionare. Non sono riuscito a far funzionare .rpk in mame, quindi se@mizapf sa cosa ho fatto di sbagliato, apprezzerei sicuramente l'aiuto!

 

 

gbustg.bin 268 a.B · 3 download gbust8.bin 512KB · 3 download gbust.rpk 80,5KB · 4 download

So I, who have a finalgrom, won't be able to enjoy this beauty?😔 Wonderful idea, like the game itself.. I hope one day to find the ready-made cartridge that will let me enjoy these wonders..🤩

  • Like 1
Link to comment
Share on other sites

Posted (edited)
15 minutes ago, Serafini Lapo said:

So I, who have a finalgrom, won't be able to enjoy this beauty?😔 Wonderful idea, like the game itself.. I hope one day to find the ready-made cartridge that will let me enjoy these wonders..🤩

Oh, no, you absolutely can enjoy this on the finalgrom! Just put gbustg.bin and gbust8.bin on your SD card, and I think it should appear in the FG99 menu. I haven't been able to test if it works on real hardware yet, so if you've tried that and it doesn't work, I need to figure out why :).

 

I want to make boxed versions of the game, if there are enough people that would like one, but the roms are and always will be freely available for use on emulators and finalgrom style flash carts.

 

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

I absolutely love the idea of a haunted Master Title Screen.  Maybe the normal MTS which flicks and distorts, then turns into the white screen like you showed with Slimer.  Would be an awesome opening presentation.  This gives me an inspiration for my own stuff.

  • Like 6
Link to comment
Share on other sites

3 hours ago, TheMole said:

Oh, no, you absolutely can enjoy this on the finalgrom! Just put gbustg.bin and gbust8.bin on your SD card, and I think it should appear in the FG99 menu. I haven't been able to test if it works on real hardware yet, so if you've tried that and it doesn't work, I need to figure out why :).

I tried it on my FinalGrom and it doesn't appear in the menu.  I tried putting it in its own folder, and also tried renaming to "gbust8.bin" to "gbustc.bin" because I think that's what the FG99 requires.  I suspect it might not like something in the GROM header?

  • Sad 2
Link to comment
Share on other sites

5 hours ago, TheMole said:

Ah, beautiful, thanks!

Just out of curiosity, what is the difference between gromemu and a future paged378 w/ GROM then?

The "gromemu" has become kind of a wildcard for large ROM handling; I extended it to the maximum of 4096 banks (each 8K, i.e. max 32 MiB). The "pagedXXX" refers to the concrete selector chip in the cartridge (74LSXXX); the 74LS378 has six selector bits, so it cannot handle more than 64 banks (512 KiB). The only shortcoming of the MAME emulation of the paged378 cartridge is that the GROM part is missing.

Link to comment
Share on other sites

3 hours ago, PeteE said:

I tried it on my FinalGrom and it doesn't appear in the menu.  I tried putting it in its own folder, and also tried renaming to "gbust8.bin" to "gbustc.bin" because I think that's what the FG99 requires.  I suspect it might not like something in the GROM header?

@PeteE Too bad. I was really looking forward to this on FinalGrom.

If we do figure out how to make this work on FinalGrom, i think you should consider maybe something similar for the master title screen on the Legend Of Tilda ;-).

Edited by jrhodes
  • 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...