Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Whack 'Em Smack 'Em Byrons, now for your SG-1000!

Reply to topic
Author Message
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Whack 'Em Smack 'Em Byrons, now for your SG-1000!
Post Posted: Wed May 01, 2024 2:18 pm
https://arugulaz.itch.io/whack-em-smack-em-byrons

"Remember me...?"
"I don't remember much, buddy, and you're no looker!"

Er, anyway. I've been plugging away at my very own video game, using the CV Basic development environment. Recently, the creator of CV Basic extended support to both the MSX and the obscure SG-1000, since those systems and the ColecoVision are so similar.

I've taken the liberty of adding a fun Sega-themed intro based on the Sega CD start screen. What I haven't added to any version is sound, but I'd like to do that in the future! I just don't really know how to make music and sound effects. Anyone got some expertise in that department? I've got someone looking at the ColecoVision version, but it'd be neat if the SG-1000 version was different in more ways than just the intro.

Enjoy! This took the better part of a month to code, even with far more advanced tools than programmers had access to when the ColecoVision and SG-1000 were still in stores.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 118
Reply with quote
Post Posted: Thu May 02, 2024 4:22 am
ArugulaZ wrote
https://arugulaz.itch.io/whack-em-smack-em-byrons

"Remember me...?"
"I don't remember much, buddy, and you're no looker!"

Er, anyway. I've been plugging away at my very own video game, using the CV Basic development environment. Recently, the creator of CV Basic extended support to both the MSX and the obscure SG-1000, since those systems and the ColecoVision are so similar.

I've taken the liberty of adding a fun Sega-themed intro based on the Sega CD start screen. What I haven't added to any version is sound, but I'd like to do that in the future! I just don't really know how to make music and sound effects. Anyone got some expertise in that department? I've got someone looking at the ColecoVision version, but it'd be neat if the SG-1000 version was different in more ways than just the intro.

Enjoy! This took the better part of a month to code, even with far more advanced tools than programmers had access to when the ColecoVision and SG-1000 were still in stores.


Lovely game!
Are you using latest version of CVBasic?
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Thu May 02, 2024 10:29 am
siriokds wrote
ArugulaZ wrote
https://arugulaz.itch.io/whack-em-smack-em-byrons

"Remember me...?"
"I don't remember much, buddy, and you're no looker!"

Er, anyway. I've been plugging away at my very own video game, using the CV Basic development environment. Recently, the creator of CV Basic extended support to both the MSX and the obscure SG-1000, since those systems and the ColecoVision are so similar.

I've taken the liberty of adding a fun Sega-themed intro based on the Sega CD start screen. What I haven't added to any version is sound, but I'd like to do that in the future! I just don't really know how to make music and sound effects. Anyone got some expertise in that department? I've got someone looking at the ColecoVision version, but it'd be neat if the SG-1000 version was different in more ways than just the intro.

Enjoy! This took the better part of a month to code, even with far more advanced tools than programmers had access to when the ColecoVision and SG-1000 were still in stores.


Lovely game!
Are you using latest version of CVBasic?


No, but I'll probably update to 5.0 in the near future. I never intended the game to be more than 32K, but with that intro, it weighs in at 30K, and 2K probably isn't realistically enough for music. (Maaaybe sound effects.)

The new CV Basic is supposed to let you have up to 8 megabits on a cartridge, potentially letting you build a game as large as Strider on the Genesis. I don't know if that applies to SG-1000 specifically, but since the SG-1000 practically IS a ColecoVision, it should.
  View user's profile Send private message Visit poster's website
  • Joined: 10 Dec 2009
  • Posts: 118
Reply with quote
Post Posted: Thu May 02, 2024 12:29 pm
ArugulaZ wrote
siriokds wrote
ArugulaZ wrote
https://arugulaz.itch.io/whack-em-smack-em-byrons

"Remember me...?"
"I don't remember much, buddy, and you're no looker!"

Er, anyway. I've been plugging away at my very own video game, using the CV Basic development environment. Recently, the creator of CV Basic extended support to both the MSX and the obscure SG-1000, since those systems and the ColecoVision are so similar.

I've taken the liberty of adding a fun Sega-themed intro based on the Sega CD start screen. What I haven't added to any version is sound, but I'd like to do that in the future! I just don't really know how to make music and sound effects. Anyone got some expertise in that department? I've got someone looking at the ColecoVision version, but it'd be neat if the SG-1000 version was different in more ways than just the intro.

Enjoy! This took the better part of a month to code, even with far more advanced tools than programmers had access to when the ColecoVision and SG-1000 were still in stores.


Lovely game!
Are you using latest version of CVBasic?


No, but I'll probably update to 5.0 in the near future. I never intended the game to be more than 32K, but with that intro, it weighs in at 30K, and 2K probably isn't realistically enough for music. (Maaaybe sound effects.)

The new CV Basic is supposed to let you have up to 8 megabits on a cartridge, potentially letting you build a game as large as Strider on the Genesis. I don't know if that applies to SG-1000 specifically, but since the SG-1000 practically IS a ColecoVision, it should.


30KB is a lot. Have you compressed your data?
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Mon May 13, 2024 6:05 am
Pretty close to being finished with this game, for those interested! By the way, I've added sound effects to the SG-1000 intro. I just need to port over all the work I've done on the ColecoVision version and I'll have it all wrapped up. (Unless I add more music. I really need to resist the temptation to do that.)

So, there are like Sega game making competitions here on SMSPower? That includes the SG-1000, right?

  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14793
  • Location: London
Reply with quote
Post Posted: Mon May 13, 2024 6:40 am
Yes, we have competitions every year, deadline March 27th.
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
It's done! Ha ha!
Post Posted: Tue May 14, 2024 2:46 am
If you care, if you dare, the SG-1000 version of Whack 'Em Smack 'Em Byrons is finished. You can download it from my Itch.IO page below.

https://arugulaz.itch.io/whack-em-smack-em-byrons
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3893
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Tue May 14, 2024 9:39 am
ArugulaZ wrote
If you care, if you dare, the SG-1000 version of Whack 'Em Smack 'Em Byrons is finished.


It's nice! :D
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Tue May 14, 2024 6:08 pm
Thanks!
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Wed May 22, 2024 8:14 am
By the way, here's the box art for the SG-1000 version of the game, for those who might be interested.
whack em smack em sg1000 box.png (328 KB)
SG-1000 box
whack em smack em sg1000 box.png

  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Wed May 22, 2024 8:19 am
And here's a Sega card too! I always found these Master System box covers amusing.
sega card weseb.png (181.59 KB)
The Sega card!
sega card weseb.png

  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Tue Jun 18, 2024 6:03 pm
Someone on Itch.IO is trying to run the game on a real SG-1000, without success. Has anyone here tried to run the game on real hardware? Alas, I have only emulation available to me... my Master System is stranded in Michigan and my Game Gear isn't in usable condition. An SG-1000 is out of the question... you might as well ask me to test WESEB on a Dina 2-in-1.
  View user's profile Send private message Visit poster's website
  • Joined: 11 Mar 2018
  • Posts: 80
  • Location: New Zealand
Reply with quote
Post Posted: Wed Jun 19, 2024 5:36 am
Away from home at the moment - But something worth checking:

I did notice on a different CV Basic game, one of the competition entries, that the interrupt-mode was never changed away from the z80's hardware-default of IM0. The game needed to use IM1 for interrupts to work properly.

This problem is usually not noticed. It won't show up on a Master System because the BIOS will set IM1. It also won't show up on menu-based flash carts, as the menu software will set IM1.

But if you actually run the game directly from a cartridge, with no bios and no menu, then the interrupt-mode would never be set to IM1 and the game wouldn't work.
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Wed Jun 19, 2024 6:56 am
This is really helpful. So I'd have to set this interrupt value once at the start of execution to get things to work? I don't think there's a CV BASIC command for this, although Oscar said he recently patched the file to address (unspecified) SG-1000 issues.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14793
  • Location: London
Reply with quote
Post Posted: Wed Jun 19, 2024 7:24 am
For homebrew on SMS and related systems, it’s advisable on startup to:

- start with di, im 1
- set the stack pointer
- set all RAM and VRAM to zero
- set VDP state to screen off + sensible values (could vary by game)

This helps avoid dependency on any other existing state on startup. In a framework like CVBASIC or DevkitSMS the framework ought to do these things before your code runs.
  View user's profile Send private message Visit poster's website
  • Joined: 11 Mar 2018
  • Posts: 80
  • Location: New Zealand
Reply with quote
Post Posted: Wed Jun 19, 2024 11:44 am
I had a quick check; it looks like Whack 'Em is setting the interrupt mode to IM1, so that's not the problem.

While I'm not sure then why it's not working on an SG-1000, I did see the comment about input not working on the SC-3000. On the SC-3000 there is a PPI chip that needs to be configured to enable gamepad input. I think it should just be two register writes once at startup to get that working.

Here's what devkitSMS does:


  ;; ensure this runs fine on SC-3000 too
  ld a,#0x92
  out (0xDF),a      ; Config PPI (no effect on SG-1000)
  ld a,#7
  out (0xDE),a      ; Select ROW 7 (row 7 of PPI is joypad = default - no effect on SG-1000)
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3893
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Wed Jun 19, 2024 1:17 pm
JoppyFurr wrote
While I'm not sure then why it's not working on an SG-1000, I did see the comment about input not working on the SC-3000.


If it runs (apart for the input) on an SC-3000 but not on an SG-1000, it could be the game expects more RAM that what's available? I mean, what else could it be?
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Wed Jun 19, 2024 11:24 pm
I don't think it's that. It does work on emulators; there shouldn't be any reason it won't work on real hardware, unless there's something the emulator can do that the real hardware can't. An SG-1000 game is distinct from a Master System game in an emulator, right? Or is the SG-1000 game just running in Master System mode?
  View user's profile Send private message Visit poster's website
  • Joined: 11 Mar 2018
  • Posts: 80
  • Location: New Zealand
Reply with quote
Post Posted: Wed Jun 19, 2024 11:51 pm
ArugulaZ wrote
I don't think it's that. It does work on emulators; there shouldn't be any reason it won't work on real hardware, unless there's something the emulator can do that the real hardware can't. An SG-1000 game is distinct from a Master System game in an emulator, right? Or is the SG-1000 game just running in Master System mode?


Depends on the emulator.

For Snepulator, I have made some effort to try help things along, to increase compatibility with ROMs that might work in some real hardware configurations but not all.

So, even though a real SG-1000 has no bios and 1KB of RAM, I set IM1 automatically and have 2 KB of RAM available. This helps it to run games that were developed and tested against the SC-3000, or that expect a BIOS to have come along beforehand to set the interrupt mode.

I did however try a quick test build with only 1KB of ram and IM1 not automatically set, and Whack 'Em still worked fine


There's a bit of a trade-off there:
- As a game developer, you'd want emulators to break when the real hardware breaks; so you find out sooner when something is wrong.
- As somebody just wanting to play games, you'd want emulators to "just work".

When running into that sort of decision; I've been tending to err on the side of "just work"
  View user's profile Send private message Visit poster's website
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Thu Jun 20, 2024 12:48 am
See, I don't have much choice but to make sure it just works somewhere because 1) I don't have an SG-1000 and 2) I don't have a bare metal familiarity with the hardware that you guys do. I'm not working with ASM. I'm working with BASIC, and I'm frankly shocked that I've been able to get as much out the MSX family of systems as I have.

I can't dig to the very core of the code and fix problems on a bit by bit basis, is my point. If it works on SOMETHING after I compile it, I'm happy. If flaws in the code get down to the microscopic level, I can't do anything about that. Someone mentioned "the interrupt was probably not turned on" and I'm standing slackjawed muttering, "Wha...?" I don't know what that is. Programming in BASIC means you never HAVE to know what that is, although it limits you in other areas. (And I can guarantee you I wasn't pulling off the kind of crap I'm doing on MSX/SG-1000/Coleco way back in 1989, when I was programming on a VIC-20. BASIC as a programming language hit this light speed evolution when I wasn't paying attention.)

Right now my big issue is that I don't know how to read the keyboards of the MSX, SC-3000, and Spectravideo SV-318 (collapses from exhaustion) because CVBasic doesn't offer direct access to them. I have to blindly suss things out with PEEKs until I find the right combination, and you'd best believe I haven't had much luck in that respect. PEEK 64485, my butt.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3893
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Thu Jun 20, 2024 1:33 pm
I see, you probably have to wait for CVBASIC to update to a new version that fixes the problem.
Just make sure you've told the author about the issue and provided all the available details, and wait.
  View user's profile Send private message Visit poster's website
  • Joined: 09 Dec 2013
  • Posts: 229
  • Location: detroit
Reply with quote
Post Posted: Sat Jun 22, 2024 1:32 pm
Just as a curiosity, what is/are byrons?
  View user's profile Send private message
  • Joined: 19 Jun 2005
  • Posts: 42
Reply with quote
Post Posted: Wed Jun 26, 2024 2:25 am
Put simply? He's a cartoon bear. Largely inspired by the cartoon bears I used to watch in the 1980s and 1990s, like Baby Tugs from the Care Bears and Kit Cloudkicker from TaleSpin. Hope that helps.

  View user's profile Send private message Visit poster's website
  • Joined: 14 Apr 2014
  • Posts: 7
Reply with quote
Post Posted: Sun Jul 07, 2024 11:02 am
Keyboard input does work on a real SC-3000.

4 - UP
R - DOWN
F - LEFT
V - RIGHT

HOME CLR - FIRE1/WHACK
INS DEL - FIRE2/WHACK

Not ideal, but does work.
  View user's profile Send private message
  • Joined: 11 Mar 2018
  • Posts: 80
  • Location: New Zealand
Reply with quote
Post Posted: Sun Jul 07, 2024 10:31 pm
00WReX wrote
Keyboard input does work on a real SC-3000.

4 - UP
R - DOWN
F - LEFT
V - RIGHT

HOME CLR - FIRE1/WHACK
INS DEL - FIRE2/WHACK

Not ideal, but does work.


I think that is just be a side-effect of the PPI not being configured.
Input is organized into a grid, where a configuration value selects which row/column (depending on how the grid is drawn) is enabled.

"4RFV" are in the same positions as joystick up-down-left-right, but with column 3 is selected instead of column 7.

Picture of the input matrix is attached, from the Sega SC-3000 Programmers Manual
sc-3000-matrix.png (107.44 KB)
keyboard matrix
sc-3000-matrix.png

  View user's profile Send private message Visit poster's website
  • Joined: 05 Sep 2013
  • Posts: 3893
  • Location: Stockholm, Sweden
Reply with quote
Post Posted: Mon Jul 08, 2024 9:26 am
I seem to remember this issue should be already been fixed in the latest CVBASIC version.
Found: fixed in v. 0.5.1
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!