Ohboy Caanoo Port


The overclock function seem to suffer from the same issue as the early vice port. If you overclock the music goes crazy and out of sync. Is anyone else having the issue as well? I am on the newest firware can someone on a different firmware test it?
 
i use firmware 1.5.0 and can confirm the overclocking issue: If you overclock, the game speed is faster, the sound has higher pitch and is also faster.
 
hi-ban said:
could you add this color palette to the emulator?

Done.

qbertaddict said:
The overclock function seem to suffer from the same issue as the early vice port. If you overclock the music goes crazy and out of sync. Is anyone else having the issue as well? I am on the newest firware can someone on a different firmware test it?

hi-ban said:
i use firmware 1.5.0 and can confirm the overclocking issue: If you overclock, the game speed is faster, the sound has higher pitch and is also faster.

This isn't present in builds based on the current code.google.com sources, because there isn't any Caanoo code for overclocking and that feature is disabled. I can't download bitrider's sources at the moment, but there must be something wrong with the way he's handling overclocking.
 
Last edited by a moderator:
i've replaced all palettes except Default and Grey.
Some palettes are taken from other Gameboy emulators, you may want to try them.

Code:
	.name = "Default",
		.dmg_bgp  = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_wndp = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp0 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp1 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C}
	},{//Grey Pallete
		.name = "Grey",
		.dmg_bgp  = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //BG
		.dmg_wndp = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //WIN
		.dmg_obp0 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //OB0
		.dmg_obp1 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }  //OB1
	},{//Realistic Palette
		.name = "DMG",
		.dmg_bgp  = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_wndp = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp0 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp1 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 }
	},{//BGB Emulator Palette
		.name = "BGB",
		.dmg_bgp  = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_wndp = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp0 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp1 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 }
	},{//KiGB Emulator Palette
		.name = "KiGB",
		.dmg_bgp  = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_wndp = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp0 = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp1 = {   0x50D050, 0x40A040, 0x307030, 0x204020 }
	},{//NO$GMB Emulator Palette
		.name = "NO$GMB",
		.dmg_bgp  = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_wndp = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp0 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp1 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 }
	},{//Green Palette
		.name = "Green",
		.dmg_bgp  = {   0xB4FFE1, 0x00E100, 0x007800, 0x002800 },
		.dmg_wndp = {   0xB4FFE1, 0x00E100, 0x007800, 0x002800 },
		.dmg_obp0 = {   0xB4FFE1, 0x00E100, 0x007800, 0x002800 },
		.dmg_obp1 = {   0xB4FFE1, 0x00E100, 0x007800, 0x002800 }
	},{//Yellow Palette
		.name = "Yellow",
		.dmg_bgp  = {   0x00FFFF, 0x00B0B0, 0x006262, 0x001414 },
		.dmg_wndp = {   0x00FFFF, 0x00B0B0, 0x006262, 0x001414 },
		.dmg_obp0 = {   0x00FFFF, 0x00B0B0, 0x006262, 0x001414 },
		.dmg_obp1 = {   0x00FFFF, 0x00B0B0, 0x006262, 0x001414 }
	},{//Orange Palette
		.name = "Orange",
		.dmg_bgp  = {   0x96FFFF, 0x00AAFF, 0x005AAF, 0x000A1E },
		.dmg_wndp = {   0x96FFFF, 0x00AAFF, 0x005AAF, 0x000A1E },
		.dmg_obp0 = {   0x96FFFF, 0x00AAFF, 0x005AAF, 0x000A1E },
		.dmg_obp1 = {   0x96FFFF, 0x00AAFF, 0x005AAF, 0x000A1E }
	},{//Blue Palette
		.name = "Blue",
		.dmg_bgp  = {   0xFFE1E1, 0xFF6464, 0x960000, 0x280000 },
		.dmg_wndp = {   0xFFE1E1, 0xFF6464, 0x960000, 0x280000 },
		.dmg_obp0 = {   0xFFE1E1, 0xFF6464, 0x960000, 0x280000 },
		.dmg_obp1 = {   0xFFE1E1, 0xFF6464, 0x960000, 0x280000 }
	},{//Red Palette
		.name = "Red",
		.dmg_bgp  = {   0xB4E1FF, 0x2832FF, 0x000096, 0x000028 },
		.dmg_wndp = {   0xB4E1FF, 0x2832FF, 0x000096, 0x000028 },
		.dmg_obp0 = {   0xB4E1FF, 0x2832FF, 0x000096, 0x000028 },
		.dmg_obp1 = {   0xB4E1FF, 0x2832FF, 0x000096, 0x000028 }
	},{//Brown Palette
		.name = "Brown",
		.dmg_bgp  = {   0x87E1FF, 0x3C96AF, 0x1E556E, 0x000F1E },
		.dmg_wndp = {   0x87E1FF, 0x3C96AF, 0x1E556E, 0x000F1E },
		.dmg_obp0 = {   0x87E1FF, 0x3C96AF, 0x1E556E, 0x000F1E },
		.dmg_obp1 = {   0x87E1FF, 0x3C96AF, 0x1E556E, 0x000F1E }
	},{//Tinted Grey Palette
		.name = "Tinted",
		.dmg_bgp  = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_wndp = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp0 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp1 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F }
	}
};

And here is the binary. it's based on bitrider´s sources.
 
Sorry for double-post...

I've changed (again) 6 palettes (yellow, red, brown and such ones were not good).
I can add more palettes if you want.

These are the palettes:

OhBoy_Palettes.png

This is the code, in case anyone is interested:

Code:
struct pal_s{
	char name[16];
	unsigned int dmg_bgp[4];
	unsigned int dmg_wndp[4];
	unsigned int dmg_obp0[4];
	unsigned int dmg_obp1[4];
}gbpal[GBPAL_COUNT] = {
	{
		.name = "Default",
		.dmg_bgp  = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_wndp = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp0 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp1 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C}
	},{//Grey Palette
		.name = "Grey",
		.dmg_bgp  = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //BG
		.dmg_wndp = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //WIN
		.dmg_obp0 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //OB0
		.dmg_obp1 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }  //OB1
	},{//Realistic Palette
		.name = "DMG",
		.dmg_bgp  = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_wndp = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp0 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp1 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 }
	},{//BGB Emulator Palette
		.name = "BGB",
		.dmg_bgp  = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_wndp = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp0 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp1 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 }
	},{//KiGB Emulator Palette
		.name = "KiGB",
		.dmg_bgp  = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_wndp = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp0 = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp1 = {   0x50D050, 0x40A040, 0x307030, 0x204020 }
	},{//NO$GMB Emulator Palette
		.name = "NO$GMB",
		.dmg_bgp  = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_wndp = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp0 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp1 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 }
	},{//Gameboy Pocket Palette A
		.name = "GBPocket A",
		.dmg_bgp  = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_wndp = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_obp0 = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_obp1 = {   0x96B496, 0x6F8265, 0x485134, 0x222004 }
	},{//Gameboy Pocket Palette B
		.name = "GBPocket B",
		.dmg_bgp  = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_wndp = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_obp0 = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_obp1 = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 }
	},{//Hot Palette
		.name = "Hot",
		.dmg_bgp  = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_wndp = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_obp0 = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_obp1 = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 }
	},{//Warm Palette
		.name = "Warm",
		.dmg_bgp  = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_wndp = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_obp0 = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_obp1 = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 }
	},{//Fresh Palette
		.name = "Fresh",
		.dmg_bgp  = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_wndp = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_obp0 = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_obp1 = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 }
	},{//Cold Palette
		.name = "Cold",
		.dmg_bgp  = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_wndp = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_obp0 = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_obp1 = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 }
	},{//Tinted Grey Palette
		.name = "Tinted",
		.dmg_bgp  = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_wndp = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp0 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp1 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F }
	}
};

And here is the binary. Again, based on bitrider's sources from yesterday.
 
fishybawb said:
I have a development build that fixes the colours, adds a show FPS option to the menu and supports a border/marquee for unscaled rendering. I'm working on button config via the menu at the moment.

All this, and an option to increase deadzones of the analog stick... That would be perfect! :)

I'm looking forward to try your improvements!




BTW... i've increased the palette count to 16... i think they will fit all tastes. (yes, i have too much free time) :lol:


The palettes:
OhBoy_Palettes_2.png

The code:
Code:
#define GBPAL_COUNT 16
struct pal_s{
	char name[16];
	unsigned int dmg_bgp[4];
	unsigned int dmg_wndp[4];
	unsigned int dmg_obp0[4];
	unsigned int dmg_obp1[4];
}gbpal[GBPAL_COUNT] = {
	{
		.name = "Default",
		.dmg_bgp  = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_wndp = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp0 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C},
		.dmg_obp1 = {0X98D0E0,0X68A0B0,0X60707C,0X2C3C3C}
	},{//Grey Palette
		.name = "Grey",
		.dmg_bgp  = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //BG
		.dmg_wndp = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //WIN
		.dmg_obp0 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }, //OB0
		.dmg_obp1 = {  0xFFFFFF, 0xAAAAAA, 0x555555, 0x000000 }  //OB1
	},{//Realistic Palette
		.name = "DMG",
		.dmg_bgp  = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_wndp = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp0 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 },
		.dmg_obp1 = {   0x006B5C, 0x265808, 0x343E08, 0x222004 }
	},{//BGB Emulator Palette
		.name = "BGB",
		.dmg_bgp  = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_wndp = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp0 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 },
		.dmg_obp1 = {   0xD0F8E0, 0x70C088, 0x506830, 0x201808 }
	},{//KiGB Emulator Palette
		.name = "KiGB",
		.dmg_bgp  = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_wndp = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp0 = {   0x50D050, 0x40A040, 0x307030, 0x204020 },
		.dmg_obp1 = {   0x50D050, 0x40A040, 0x307030, 0x204020 }
	},{//NO$GMB Emulator Palette
		.name = "NO$GMB",
		.dmg_bgp  = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_wndp = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp0 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 },
		.dmg_obp1 = {   0x88E0F8, 0x58B0D8, 0x387898, 0x183848 }
	},{//VGB Emulator Palette
		.name = "VGB",
		.dmg_bgp  = {   0xADF7FF, 0x73AEB5, 0x315963, 0x000810 },
		.dmg_wndp = {   0xADF7FF, 0x73AEB5, 0x315963, 0x000810 },
		.dmg_obp0 = {   0xADF7FF, 0x73AEB5, 0x315963, 0x000810 },
		.dmg_obp1 = {   0xADF7FF, 0x73AEB5, 0x315963, 0x000810 }
	},{//Gameboy Pocket Palette B
		.name = "GBPocket A",
		.dmg_bgp  = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_wndp = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_obp0 = {   0x96B496, 0x6F8265, 0x485134, 0x222004 },
		.dmg_obp1 = {   0x96B496, 0x6F8265, 0x485134, 0x222004 }
	},{//Gameboy Pocket Palette B
		.name = "GBPocket B",
		.dmg_bgp  = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_wndp = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_obp0 = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 },
		.dmg_obp1 = {   0x78A591, 0x5B7862, 0x3E4C33, 0x222004 }
	},{//Hot Palette
		.name = "Hot",
		.dmg_bgp  = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_wndp = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_obp0 = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 },
		.dmg_obp1 = {   0x6496D2, 0x4E6E8D, 0x384748, 0x222004 }
	},{//Warm Palette
		.name = "Warm",
		.dmg_bgp  = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_wndp = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_obp0 = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 },
		.dmg_obp1 = {   0x64D2BE, 0x4E9680, 0x385B42, 0x222004 }
	},{//Fresh Palette
		.name = "Fresh",
		.dmg_bgp  = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_wndp = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_obp0 = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 },
		.dmg_obp1 = {   0xBED264, 0x8A9644, 0x565B24, 0x222004 }
	},{//Cold Palette
		.name = "Cold",
		.dmg_bgp  = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_wndp = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_obp0 = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 },
		.dmg_obp1 = {   0xD29664, 0x976E44, 0x5C4724, 0x222004 }
	},{//Tinted Palette A
		.name = "Tinted A",
		.dmg_bgp  = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_wndp = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp0 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F },
		.dmg_obp1 = {   0xA1CFC4, 0x6D958B, 0x3C534D, 0x1F1F1F }
	},{//Tinted Palette B
		.name = "Tinted B",
		.dmg_bgp  = {   0xDCFFE6, 0x96B9A0, 0x55735A, 0x0F280F },
		.dmg_wndp = {   0xDCFFE6, 0x96B9A0, 0x55735A, 0x0F280F },
		.dmg_obp0 = {   0xDCFFE6, 0x96B9A0, 0x55735A, 0x0F280F },
		.dmg_obp1 = {   0xDCFFE6, 0x96B9A0, 0x55735A, 0x0F280F }
	},{//Tinted Palette C
		.name = "Tinted C",
		.dmg_bgp  = {   0x009284, 0x00786E, 0x00554B, 0x002D28 },
		.dmg_wndp = {   0x009284, 0x00786E, 0x00554B, 0x002D28 },
		.dmg_obp0 = {   0x009284, 0x00786E, 0x00554B, 0x002D28 },
		.dmg_obp1 = {   0x009284, 0x00786E, 0x00554B, 0x002D28 }
	}
};

int findpal(){
	int *a, *b;
	int i,j;
	for(i=0; i<GBPAL_COUNT; i++){
		a = gbpal[i].dmg_bgp ; b = rc_getvec("dmg_bgp");
		if(a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || a[3] != b[3])
			continue;
		a = gbpal[i].dmg_wndp; b = rc_getvec("dmg_wndp");
		if(a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || a[3] != b[3])
			continue;
		a = gbpal[i].dmg_obp0; b = rc_getvec("dmg_obp0");
		if(a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || a[3] != b[3])
			continue;
		a = gbpal[i].dmg_obp1; b = rc_getvec("dmg_obp1");
		if(a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || a[3] != b[3])
			continue;
		return i;
	}
	return 0;
}

char *lpalettes[] = {
	gbpal[0].name,
	gbpal[1].name,
	gbpal[2].name,
	gbpal[3].name,
	gbpal[4].name,
	gbpal[5].name,
	gbpal[6].name,
	gbpal[7].name,
	gbpal[8].name,
	gbpal[9].name,
	gbpal[10].name,
	gbpal[11].name,
	gbpal[12].name,
	gbpal[13].name,
	gbpal[14].name,
	gbpal[15].name,
    NULL
};

And the binary:
 
Last edited by a moderator:
Thanks to hi-ban, the new palettes posted earlier in the thread are now available in the OhBoy repo. these are additions (not replacements).

See http://code.google.com/p/ohboy/wiki/ScreenShots#Sample_of_some_of_the_color_palettes
 
So Hi-Ban has been busy this weekend, he has created a new font and added it to Oh Boy. This may sound simple but there is a lot of work involved in both the font creation and the code changes needed. You can check the change log at http://code.google.com/p/ohboy/source/list for more details.

If anyone makes vanilla builds of Oh Boy (i.e. the code from the OhBoy repo without changes), I'm happy to host the binaries on the project page.
 
This is not a vanilla build. it's again based on the sources from bitrider, but with the latest changes added. (27 palettes and new font)
I used his sources because they fix the color glitch issue with scaler 1.5x (which i use)

TTF_RomSelection.png


TTF_Options.png

Just wanted to share it...
 
Props to the improvements being made on this emulator. The Ayla Fullscreen is great (why doesn't lemonboy implement it?). Aside from some scaling sprites and menu navigation issues OhBoy is very nice.
 
SML said:
Props to the improvements being made on this emulator. The Ayla Fullscreen is great (why doesn't lemonboy implement it?). Aside from some scaling sprites and menu navigation issues OhBoy is very nice.

There are probably a couple of answers to that.

The first is that Ayla wrote that scalar for me, for OhBoy and gnuboy :p

I'm not sure if anyone is maintaining Lemonboy..... and I sort of hope no one is, it is a nice emulator but the emulation core is an old gnuboy fork, the ideal would be that we avoid forking gnuboy any further and concentrate what few developers we have on that. When I first took on OhBoy it was yet-another-fork of gnuboy, it isn't anymore, it now REQUIRES gnuboy as a build dependency. If (and that is probably a BIG if), gnuboy emulation improves (for example IK+ for gbc has some glitches), OhBoy will magically get the new features if gnuboy is updated, Lemonboy won't without significant hard work.

There are still many forks out there, e.g. the Wii GB emu is a gnuboy fork, I'm not sure we'll ever get just one but we should try and avoid making more.

I don't have much free time myself these days :( But hi-ban has been making some steady improvements to OhBoy this last week (and they are available from the project page, http://code.google.com/p/ohboy/ ). It would be great to get some more developers on the project. I know very little about gameboy emulation, I got completely lost when I was debugging the IK+ gbc background bug :( I took on gnuboy and ohboy (I did not write them originally) as they had been abandoned and forked so many times it was difficult to keep track of the bug fixes and enhancements, I think it is easier now, for example we have one code base for OhBoy and it works on about 5 different platforms, previously they were all seperate forks! :blink:
 
Last edited by a moderator:
New vanilla build for caanoo: http://code.google.com/p/ohboy/downloads/list

it fixes the color glitch issue, adds more savestate slots, a new font, a new background, and adds a "show FPS" option to the menu.

ohboy_showFPS.png
 
hi-ban said:
New vanilla build for caanoo: http://code.google.com/p/ohboy/downloads/list

it fixes the color glitch issue, adds more savestate slots, a new font, a new background, and adds a "show FPS" option to the menu.

ohboy_showFPS.png
This is awesome! Any chance we will see a option to skip down a page when selecting roms?
 
Last edited by a moderator:
qbertaddict said:
Any chance we will see a option to skip down a page when selecting roms?

Not sure. i'm new to programming and i'm self-taught learning as a hobby, so i can't say anything for sure. But i will look into it.
 
Last edited by a moderator:
This and the previous version (starting from version with red text) have graphic bugs in some of the GBC games, such as Shantae, Extreme Ghostbusters, Alice in Wonderland. On old version all games are playable.
 
fishybawb sent me his source code, so i will add BMP border support. Thanks!

I've been working on it, and i currently have a build which supports BMP border for no-scaling, and a different BMP border for sample1.5x and scale3x.
It has also a menu option to remap the A,B,X,Y,L,R buttons, as well as other minor changes.

I will release it as soon as the new changes are accepted by clach04. (the BMP border support requires a small change in the gnuboy source)
 
Back
Top