artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 24, 2020 14:24:08 GMT
Being a game and apps C/C# developer since 1999, I wanted to experiment assembler and homebrew dev on my favorite system (coregrafx bought in France Nov 1990). I contacted Morphcat games 2 months ago and pretty quick got their source code to start porting the neat 2019 homebrew Micro Mages from NES to PCE. Kickstarter MicromagesI will try to post regular updates about the progression. So far - set up the ca65 project (found a recent branch that supports the ZP at $2000) since the NES games was assembled with ca65. - game is working (up to 4p) - sprites are translated from the NES OAM to PCE SATB at run time (lots of lost space due to 8*8px NES sprites being stored centered in 16*16px PCE sprites) - Vertical scrolling is done through a RAM buffer of the nametable (best way I found to deal with wrapping the 60 CHR rows of the NES with the 64 rows on PCE), rows being copied to VRAM with a moving offset. to come - sound emulation ( I have 0 knowledge of low level sound wish me luck ) - improvements over the NES - find a way to produce hucards. For easy improvements I was thinking - using 16 colors palettes for the tiles and sprites rather than 4 - improved music - adding atmospheric effects like foreground clouds, or a background color gradient for the sky. Suggestions - ideas for the port would be very welcome!
|
|
nicole
Gun-headed
Posts: 50
Fave PCE Shooter: Magical Chase
Fave PCE Platformer: Legendary Axe II
Fave PCE RPG: Ys III
|
Post by nicole on Oct 24, 2020 16:51:49 GMT
Ooh very nice, will definitely be keeping an eye on this; I loved MicroMages on the NES.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 24, 2020 17:50:19 GMT
Ooh very nice, will definitely be keeping an eye on this; I loved MicroMages on the NES. Single player is nice but coop is really on another level imoo.
|
|
|
Post by DarkKobold on Oct 24, 2020 18:45:33 GMT
I love micro mages!
For sure take advantage of 5 players instead of 4.
If you can get it to fit sans music in under 256kB, it's trivial to make it a super CD game in addition to HuCard. You'll want to consider that, as its much cheaper and easier to produce CDs than HuCards, which allows for a budget physical edition.
Also, your picture gives me a permissions error.
|
|
|
Post by dshadoff on Oct 24, 2020 20:44:45 GMT
Wow, PCE homebrew is heating up nicely again ! Between Jessie Jaeger, Space Ava 201, and this, it's a pretty exciting time.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 25, 2020 7:08:18 GMT
I love micro mages! For sure take advantage of 5 players instead of 4. If you can get it to fit sans music in under 256kB, it's trivial to make it a super CD game in addition to HuCard. You'll want to consider that, as its much cheaper and easier to produce CDs than HuCards, which allows for a budget physical edition. Also, your picture gives me a permissions error. Fixed the pic link. Yes it's currently sitting at 88k after I expanded sprites to 16x16 and 4bpp. from the 40k nes rom. 5p and SCD suggestions noted thanks.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 25, 2020 7:10:06 GMT
Added a ca65 mention as it's worth noting another tool working now correctly for PCE assembling. It wouldn't have been my first choice of course, but it made sense for this project.
|
|
nicole
Gun-headed
Posts: 50
Fave PCE Shooter: Magical Chase
Fave PCE Platformer: Legendary Axe II
Fave PCE RPG: Ys III
|
Post by nicole on Oct 25, 2020 15:56:28 GMT
Added a ca65 mention as it's worth noting another tool working now correctly for PCE assembling. It wouldn't have been my first choice of course, but it made sense for this project. Curious if you had to do anything special to get ca65 to work; I wrote my NES homebrew game in ca65, if it's not too hard to port it might something fun for me to try.
|
|
|
Post by elmer on Oct 26, 2020 15:12:32 GMT
Curious if you had to do anything special to get ca65 to work; I wrote my NES homebrew game in ca65, if it's not too hard to port it might something fun for me to try. CA65 has been mostly-working for many years now, you've just got to create a linker file to put everything into banks for a PCE ROM. OTOH, there still *seems* to be some pretty big "gotcha's" in actually using CA65 to write code for the PCE. IIRC, you can always work around the addressing issues when you find them, but it is a bit of a PITA. The recent bug report here ... HuC6280 absolute,Y addressing bug, has been linked by the CC65 development team to my four year old (and still open) bug report / pull request here ... Add support for HuC6280 zero-page at $2000 instead of $0000.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 27, 2020 10:13:56 GMT
Curious if you had to do anything special to get ca65 to work; I wrote my NES homebrew game in ca65, if it's not too hard to port it might something fun for me to try. CA65 has been mostly-working for many years now, you've just got to create a linker file to put everything into banks for a PCE ROM. OTOH, there still *seems* to be some pretty big "gotcha's" in actually using CA65 to write code for the PCE. IIRC, you can always work around the addressing issues when you find them, but it is a bit of a PITA. The recent bug report here ... HuC6280 absolute,Y addressing bug, has been linked by the CC65 development team to my four year old (and still open) bug report / pull request here ... Add support for HuC6280 zero-page at $2000 instead of $0000. ca65 couldn't emit properly an indirect indexed addressing with a zeropage address for an instruction that doesn't support ZP, so it would emit like lda ($00FC),y while it should have emitted lda ($20FC),y That branch made it work, with ZP at 2k by default on PCE github.com/greg-king5/cc65/tree/direct-pageI still had to remove one check in ld65, and use a proper .cfg but nothing major.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 27, 2020 10:16:08 GMT
I recall the coregrafx cpu fixed a crack in sound present on the white PCE. What is corrected exactly? I can't find the info. I am asking because I started on porting the NES sound, setup waveforms for triangle and squares, and I get cracks when stopping / resume channels.
|
|
|
Post by turboxray on Oct 27, 2020 13:16:08 GMT
I recall the coregrafx cpu fixed a crack in sound present on the white PCE. What is corrected exactly? I can't find the info. I am asking because I started on porting the NES sound, setup waveforms for triangle and squares, and I get cracks when stopping / resume channels. The core and sgx have revision A. When you completely turn a channel on/off on the original version, you get a pop or spike on the audio output relative to the volume level of that channel. Normally this isn't an issue since turning on a channel is usually accompanied by sound from the waveform output. But if you do this while the channel outputs nothing, you'll hear pops or clicks (like turning it on and off, but defaulting to no playable mode or just DDA mode). Like I said, usually doesn't show up as a problem normally but if you're emulating/translating NES APU registers and how NES code disables/enables sound channels - then you'll run into it.
|
|
artial
Deep Blooper
Posts: 25
Homebrew skills: Make it work
Fave PCE Shooter: Superstar soldier
Currently Playing: Micro Mages
|
Post by artial on Oct 27, 2020 21:25:28 GMT
I recall the coregrafx cpu fixed a crack in sound present on the white PCE. What is corrected exactly? I can't find the info. I am asking because I started on porting the NES sound, setup waveforms for triangle and squares, and I get cracks when stopping / resume channels. The core and sgx have revision A. When you completely turn a channel on/off on the original version, you get a pop or spike on the audio output relative to the volume level of that channel. Normally this isn't an issue since turning on a channel is usually accompanied by sound from the waveform output. But if you do this while the channel outputs nothing, you'll hear pops or clicks (like turning it on and off, but defaulting to no playable mode or just DDA mode). Like I said, usually doesn't show up as a problem normally but if you're emulating/translating NES APU registers and how NES code disables/enables sound channels - then you'll run into it. That's the issue, I try to emulate the NES controls, and if I touch the PSG channel volume it clicks (while keeping channel on DA off). What's the workaround? Mixing on the fly the triangle and 2 squares waveforms on the CPU and blast to PSG? I'd rather avoid that
|
|
|
Post by turboxray on Oct 28, 2020 15:34:07 GMT
The core and sgx have revision A. When you completely turn a channel on/off on the original version, you get a pop or spike on the audio output relative to the volume level of that channel. Normally this isn't an issue since turning on a channel is usually accompanied by sound from the waveform output. But if you do this while the channel outputs nothing, you'll hear pops or clicks (like turning it on and off, but defaulting to no playable mode or just DDA mode). Like I said, usually doesn't show up as a problem normally but if you're emulating/translating NES APU registers and how NES code disables/enables sound channels - then you'll run into it. That's the issue, I try to emulate the NES controls, and if I touch the PSG channel volume it clicks (while keeping channel on DA off). What's the workaround? Mixing on the fly the triangle and 2 squares waveforms on the CPU and blast to PSG? I'd rather avoid that Nothing that drastic is needed haha. It's been a minute, but last I worked with NES APU, the control reg ($4015) sets the length counter to 0 to disable a channel. You can use that to turn off the channel if the corresponding bit is set to disable. But for enabling a channel - don't! Rather, set a status that the channel is operable - but don't turn it back on. Then when an update comes along to reset the length counter (or such) then turn on the PCE channel. Basically, whatever triggers the NES channel to output sound (length counter settings, etc - I don't remember all the APU register that trigger a re-enable off hand). That way you're not causing a series of 'clicks' on the output. You could take it one step further and wait until a retrigger status + volume level greater than 0 (I can't remember if lowest volume is true silence or not). Also beware that some sound engines set the frequency to highest in order to silence a channel on the NES (and not just for Triangle waveform channel) - you can do this as well, but NES $0000 is the highest frequency while on the PCE that's the lowest frequency (or vice-versa I can't remember off hand, but there needs to be a detect routine to check for this and then offset that value by 1 for that exception). But anyway, that should give you an idea. I did the Megaman 1 and 2 games for NES2PCE like that and it worked out pretty good for sound emulation.
|
|
Deleted
Deleted Member
Posts: 0
|
Post by Deleted on Oct 29, 2020 15:37:47 GMT
- find a way to produce hucards. - adding atmospheric effects like foreground clouds, or a background color gradient for the sky. I can only speak for myself, but I would be happy even if the game was an exact replicate to the NES version. No reason the turbo can't have have 8 bit games in addition to 16 bit games. So no need to add anything from my perspective. Besides, the game is pretty much perfect the way it is and if released on the turbo would probably be propelled to the best homebrewed game on the platform (after Atlantean of course ). A HUcard would be cooler than CD, though I can't promise I'll get one due given the times we live in obviously. Definitely excited for i t though!
|
|