We're using cookies to ensure you get the best experience on our website. More info
Understood
@dasiRegistered August 8, 2007Active 4 months ago
188 Replies made

fobbio, I’ve replaced the makefile and changed a couple of other things. It should now compile successfully.

  • This reply was modified 12 years, 10 months ago by dasi.
  • This reply was modified 12 years, 10 months ago by dasi.
  • This reply was modified 12 years, 10 months ago by dasi.
Attachments:

VN102110416
VN103026495
VN104183418

I got my DTC-27 driver today and it fits perfectly, thanks for the tip e5Frog. The DLH3-95 on the first page is a *very* tight fit for the two deep screws, so the DTC-27 is definitely the driver you want.

If it’s a Pentium 3 it won’t be fast enough to run mednafen at full speed.

  • This reply was modified 13 years, 2 months ago by dasi.

The examples given above work correctly in Mednafen, Reality Boy, and on hardware.

> What should I do?

It’s likely you will need to restructure or rewrite your main loop.

> If you don’t want to use interrupts, you
> could sync to the actual screen refresh
> by using the DPSTTS [DPBSY flags]…

The reason for syncing to XPEND or using the XPEND interrupt is to avoid writing to VRAM, the world attributes, OAM, the parameter tables, etc, during the VIP drawing process. Syncing to GAMESTART is fine too, but means you need to use an interrupt:

#include "libgccvb.h"

void vip_isr()
{
  VIP_REGS[INTENB]= 0;

  if(VIP_REGS[INTPND] & XPEND)
  {
    VIP_REGS[INTCLR]= XPEND;

    // drawing finished, write to VRAM, OAM, etc, here!
  }

  VIP_REGS[INTENB]= XPEND;
}

int main()
{
  int count= 0;

  VPU_VECTOR= (u32)vip_isr;
  VIP_REGS[INTENB]= XPEND;

  vbDisplayOn();
  vbDisplayShow();

  // main loop @ 50 Hz
  while(1)
  {
    // sync with start of gameframe
    while(!(VIP_REGS[INTPND] & GAMESTART));
    // clear flag
    VIP_REGS[INTCLR]= GAMESTART; 

    // read controller

    // do stuff

    if((count&15)==0)
      VIP_REGS[BKCOL] ^= 3;

    count++;
  }

  return 0;
}
  • This reply was modified 13 years, 3 months ago by dasi.

Put me down for a cable too, please.

Like this. Wait for drawing to end before writing to OAM, etc.

I had a quick look at this a while ago and found that copying word aligned data from WRAM to VRM was approximately 2.5 times faster with [font=Courier]movbsu[/font] compared to a word copier (8.2 vs 20.5 cycles/byte). However, the word copier was quicker when run from the instruction cache (7.1 cycles/byte).

[font=Courier]copymem[/font] is a byte copier with a 16-bit loop variable so blitter’s bit string copier must be at least ten times faster.

If you need them for your own personal collection and you think downloading fifty versions of gosub is a worthwhile use of your time, here you go:

http://www.planetvb.com/modules/newbb/viewtopic.php?topic_id=3515

I can’t help you with the others.

Homebrew is not the same as public domain. If you intend to distribute the ROMs you’ve collected you should first obtain the permission of the authors.

  • This reply was modified 13 years, 6 months ago by dasi.

Oops, fixed a typo:

    if((count&7)==0)
      VIP_REGS[BKCOL] ^= 3;  // flicker

Flicker / display sync mini-demo:

int main()
{
  int count= 0;

  vbDisplayOn();
  vbDisplayShow();

  // main loop @ 50 Hz
  while(1)
  {
    // wait for the VIP to finish drawing
    while(!(VIP_REGS[REG_INTPND] & XPEND));
    // clear flag
    VIP_REGS[INTCLR]= XPEND;

    // read controller

    // do stuff		

    if((count%7)==0)
      VIP_REGS[BKCOL] ^= 3;  // flicker

    count++;
  }

  return 0;
}

rubengar, if you upload your graphics, I’ll look at getting your project working with grit. It’d mean you’d be able to have all your graphics in a single file.

Hi Confusednerd,

Welcome to the forum. I’ve sent you a PM.

dasi

From the Mario VB readme:

COMPILING ON WIN32
==================

Requirements:

· Minimal Linux environment (i.e: CygWin)

· GCCVB 2.95 for V810

1. Create an environment variable called VBJAENGINE which must point to the vbJaEngine’s folder.

2. To compile the execute the following command inside the game’s folder:

$ make

This will compile the engine and the game, the executable is placed in the output/ folder.

> can’t locate the vbjae.h file

You’re missing Jorgeche’s vbJAEngine.

Also, off-topic:

Check out this SNES pad with a number pad in the center

http://www.assemblergames.com/forums/showthread.php?t=2225

  • This reply was modified 13 years, 8 months ago by dasi.
  • This reply was modified 13 years, 8 months ago by dasi.

If it’s the same tool as sold here (it looks the same), the shank is either 52 or 56 mm long, which isn’t long enough to get at the two deepest screws.

They were all made in Japan. If it was sold in Japan the text next to the link socket will be PLAYLINK, if it’s a US VB it will be EXT.

Vaughanabe13, you might find some useful info in this old thread:

http://www.planetvb.com/modules/newbb/viewtopic.php?topic_id=2937

No, but I don’t think your code would work anyway; [font=Courier]posprintf[/font] takes a variable list of arguments, not a [font=Courier]va_list[/font].