Jump to content

RevEng's Photo


Member Since 23 May 2009
OFFLINE Last Active Today, 6:59 AM

#4177012 Rikki & Vikki

Posted by RevEng on Fri Dec 14, 2018 12:36 PM

This is from the capture card I'm using which has proper Y/C separation (but imperfect sync despite that, hence the status bar wiggles). The colorburst is never disabled during the game, but if you're displaying a color in the $0x range the chroma signal will go silent for those particular pixels.

Perfect, though weird that you still get some artifacting with Y/C separation.

Glad to hear it's not what I thought. This game looks like a masterpiece. :thumbsup:

#4176880 Why does Jungle Hunt go left?

Posted by RevEng on Fri Dec 14, 2018 9:05 AM

Taito is a Japanese company. Japanese traditional language (which is still used in books, newspaper, etc) is read top-to-bottom right-to-left, and books tend to be right to left. Perhaps there was some cultural leaning on the part of the designer? Or at least, maybe that helped it feel less weird?

#4175108 Rikki & Vikki

Posted by RevEng on Tue Dec 11, 2018 4:52 PM

Oops. Sorry to "out" the info. Apparently google had different ideas about it being private.  |:)

#4175085 Rikki & Vikki

Posted by RevEng on Tue Dec 11, 2018 4:06 PM

Fantastic work! One more game to point to, when people say the 7800 is just a souped up 2600.

Could you elaborate on this?  An area of interest to me. :)

While we wait for his reply, some reading... he's posted a lot of details here, and the equates give a pretty good overview of his scheme.

#4174891 Baby Pac-Man

Posted by RevEng on Tue Dec 11, 2018 11:28 AM

So ghosts don't have an animation variable, as such. Curiouser and curiouser.

PM sent on the debugger. It will be useful, but we have to figure out the best way to trap the bug.

#4174731 Baby Pac-Man

Posted by RevEng on Tue Dec 11, 2018 7:47 AM

A picture is worth a thousand words. That's not a missed frame update, since it's evenly affecting each sprite at the same time, despite varying vertical positions.

Sprite width and X appear correct, so if it was DL corruption it would have to affect only specific bytes, which isn't likely. To me it looks like the variable you use for sprite frame animation is out of range, causing other sprite memory to be accessed.

#4173441 Bankswitching causes compilation failure

Posted by RevEng on Sun Dec 9, 2018 11:48 AM

Okay, I follow that, but how is lex itself called on Windows, since as far as I know, Windows doesn't include a lex binary?  I'm just trying to speculate on why the results would be different on Windows as they would be on Mac and Linux.

Lex doesn't get called on Windows when you're using bB, and it doesn't get called on Unix either. It gets called only when I build the bB executables themselves.

#4173404 Bankswitching causes compilation failure

Posted by RevEng on Sun Dec 9, 2018 10:59 AM

Thanks for that.

Weird that this is a platform specific bug. This is the section of code around L0421 in the listing...
   4596  33d6                              .L0421               ;  ;sounddelay = 30^M
   4597  33d6
   4598  33d6                  a9 1e                  LDA       #30
C:\bB.1.1d.reveng41\code\fall10test\fall10test.bas.asm (4599): error: Illegal Addressing mode 'sta '.
   4599  33d8                                         STA               ;sounddelay^M

The semicolons aren't being stripped out from the bB preprocessor, like they should. The preprocessor switches modes depending on what it's currently parsing. (eg. general source, data statement, playfield statement, etc) I think the issue here is the preprocessor hasn't properly left one of the previous modes earlier in the source code, probably due to the tabs.

I'm not really a lex guy (the preprocessor is written in lex) and I can't reproduce this on my laptop currently, so it may take me some time to further pinpoint and fix. It's probably best to go with bogax's workaround for now.

#4172306  GALAXIANS 7800 - new game (WIP)

Posted by RevEng on Fri Dec 7, 2018 12:17 PM

The instruction at 0xE874 is "jmp $ef65", which isn't the start of a full instruction, causing the 6502 to execute gibberish. Hacking this back to the original destination (according to a comment in the disassembly) causes the ROM to run without crashing, with the exception of the game missing the starfield. Not sure if that's because the commented destination is also wrong, or if the starfield is just another ProSystem Emulator ProProblem™.

Attached File  Galaxians_G16_32K_FIX.a78   32.13KB   22 downloads

Both the original posted file (in prosystem) and this one seem to play more like Space Invaders. I only mention this in case someone thinks my meddling introduced that.

The problem was tracked down in a few minutes, thanks to the fine debugger in Mame/A7800. Another reason to switch over.

#4171797 ZeroPage Homebrew Twitch Stream

Posted by RevEng on Thu Dec 6, 2018 3:26 PM

Indeed. One of them even rips his sheet on a nail, during an intermission. The 1981 pac man flyer actually refers to them both as "ghost monsters" and "monsters".

BITD we called them ghosts, well before the 2600 release. Seemed kinda obvious, but I guess we were ahead of the curve.

#4171574 Happy New Year... XM shipping this month

Posted by RevEng on Thu Dec 6, 2018 10:19 AM

Be great to see Zork and some graphical adventures done on the 7800XM, I wonder if it would be possible to use the XM High Score feature as a game save and be able to save where a player is so that in a long game like that you could save, turn off the 7800 and come back at a later time to continue playing where you left off?  hmmmmmmm.....

7800basic has a "savememory" command that does just this, writing to either HSC or Atarivox. IIRC Bob rolled his own code for HSC raw access too. It's definitely possible. :)

Agreed on Star Raiders!

#4166939 7800basic for Newbies: A Tutorial, Part 3

Posted by RevEng on Thu Nov 29, 2018 4:07 PM

You may find this write-up on sprite and tile interactions useful.

#4163155 Comparing the NES and 7800 on a technical level

Posted by RevEng on Fri Nov 23, 2018 3:13 PM

Saying Maria is "bolted on" to the 2600 is highly inaccurate hyperbole. Maria is in no way an add-on or extra feature. Maria is the heart of the 7800, feeding the 6502 and TIA their clock signals, halting the 6502 when it needs to, mapping RAM into address space, etc.

From the software perspective Maria runs the show in 7800 mode, completely cutting out TIA visuals. Even in 2600 mode, Maria has to selectively connect address lines to the CPU, because the 7800 has a 6502, rather than a 6507 chip like the 2600.

#4161146 bB 256k, 128k, 64k, 32k, Multikernel Frameworks

Posted by RevEng on Tue Nov 20, 2018 6:33 AM

Yes, it's the last ORG that needs to change, since the frameworks don't use native bB bankswitching.

For 6 new characters the bottom ORG needs to be FF3C.

To get that answer, I just used a calculator with a hex setting and punched in "ff6c−(6×8)"

#4161015 bB 256k, 128k, 64k, 32k, Multikernel Frameworks

Posted by RevEng on Mon Nov 19, 2018 11:21 PM

It doesn't restrict you from using extra characters, but you need to make changes uniformly for all banks.

i.e. When you edit the provided score_graphics.asm in one bank (and change the start of the graphics to allow for more characters) you need to modify the score_graphics.asm graphics start location similarly in all banks.

The underlying reasons you need to do this are 1)bank-switch routines normally need to be the same place in each bank, and 2)the bank-switch switch routine for these frameworks is in the score_graphics file, right after the graphics data.