Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


RevEng last won the day on September 5 2020

RevEng had the most liked content!

Community Reputation

6,340 Excellent

About RevEng

  • Rank
    ​​ 👾 Space Cowboy 👾 ​

Profile Information

  • Gender
  • Location
    ​ 🇨🇦 

Recent Profile Visitors

46,296 profile views
  1. I have a hacked version of a7800 that subtracts the dma cycles used from the total in each frame. When the action is at a suitable point I just exit and check the values printed out on the console. I'll share it, or something like it in the future, but it's very rough around the edges right now.
  2. The answer is "it depends on how much you're making Maria do". But here's some figures of non-DMA cycles per game frame, for some common games. This is in the midst of action, with a moderate number of game objects moving around. Alien Brigade 13163 Bentley Bear 12024 Choplifter 19660 Commando 16996 DigDug 20401 Food Fight 23198 Froggie 9052 Ms Pac 14871 Popeye 11506 Robotron 26260 Sirius 14971 T:ME Salvo 16970 Bear in mind that a good chunk of that will be updating display lists ("plotting" in 7800basic) so you don't have all of that time available, unless your game isn't plotting objects. But at least it should give you a ballpark idea.
  3. It can go anywhere - inline with your main loop, or within a sub that gets called from the main loop. The main consideration is that it needs to be part of your control handling code, since it allows/denies player movement in a given direction. As such you'd usually run it once per frame.
  4. Nerds often refer to the period symbol as "dot", when it's not being used at the end of a sentence. That would have helped with the search. A label that begins with a dot is limited in scope. i.e. if you use a particular dot label somewhere in a dasm subroutine, you can use the same dot label elsewhere for some other purpose, without a name clash. The reason for the dot label in this particular case is to make it possible to "gosub unrand" directly from bB source code. bB prepends a dot to all of it's labels, which means the basic code "gosub unrand" becomes the assembly code "jsr .unrand". A natural follow-up question might be "why does bB internally add a dot to each label?" The reason bB does that is to support line numbers as labels. Dasm doesn't support symbols that are just numbers, or even those that begin with numbers. So adding the dot to each label was batari's way to turn the line numbers into a label that dasm would accept. (bB doesn't actually use dasm subroutines at all, as far as I recall) The colon is just an optional dasm syntax for labels. Some people use it to make labels more obvious in their assembly source, or because they previously used an assembler that required the colon for labels. I typically don't use it, but I did for some reason here. (and inconsistently too, since .unrand doesn't have one)
  5. It's a 16-bit LFSR. "rand16" holds the upper part of the seed. Try something like... rand=15 rand16=42
  6. Deflemask can import OPM files for it's ym2151 instruments. There's a vgm2opm converter somewhere out there, but you can also just grab the ripped opms instead. A good chunk of all of the games that ever played through a ym2151 is available. The 7800.8bitdev.org wiki OPM Instrument Collection page has a link to the "Mega Arcade Collection" OPM pack, which includes the files for the R-Type games. (and a lot more) To save you the hunting, I've also attached a zip here with just the R-Type OPMs. R-Type_OPM.zip It's also worth mentioning that the x68000 collection on the same wiki page also has the R-Type OPMs used with that platform.
  7. vgm appears to just be a realtime dump of each register hit... it makes sense that you couldn't convert through those formats. I looked at one of the r-type vgm rips. Each song is ~200k. So I don't think it's feasible from a rom perspective to just take vgm on it's own and import. It's the same problem we find with midi files being very rom-expensive, since none of the repetitive bits of the song structure is encoded. [edit...] Hmmm, I think some PCM data was encoded in that one. Other ym2151 rips are about 20k per song, which is still a bit expensive, but at least doable.
  8. RevEng

    HOKEY demo

    I'm late to the party, but this is fantastic news, Fred! It would be best to send the player @mksmith put together for these tunes to Fred in PM, along with your notes on what Pokey settings were used. The M+M demo Fred is using didn't have all the areas, and the player will make it more convenient to check any one song.
  9. It looks like a Windows-specific 7800basic bug, the root of which is Windows both ignoring and gleefully adding capitalisation to file names. The problem is those file names turn into case-sensitive symbols in 7800basic. I've worked around this for the most part, taking the capitalisation desired from the "incgraphic" statement instead of the OS. Unfortunately this doesn't work if the capitalisation inside the tiled file differs from the rest of the usage in the basic file. I'll have to figure out a fix, though it's not quite clear to me what that will look like yet. For now the work-around is to either ensure your incgraphic statement (and other references) matches the OS file name capitalisation, or to open the tmx in a text editor and fix any references inside to match the capitalisation used in your incgraphic statement. (e.g. "Untitled" can be manually changed to "untitled".)
  10. Here's the relevant excerpt from the yellow screen of death section of the manual...
  11. Sure, it's a valid format. The ROM in 32k+ram is the same as plain old 32k format. (i.e. no banking required)
  12. Karl is correct. You can just break out of the inner loop with a goto, as you have here. The outer loop "next" won't get confused with the inner loop one.
  • Create New...