Skip to content

Commit

Permalink
Added several upscalers (for devices which support them)
Browse files Browse the repository at this point in the history
-Added several upscalers (for devices which support them).
-Merged RG350 and RG350M versions.
-Simplified several functions.
-Removed some redundant files.
-Updated some build scripts.
  • Loading branch information
hi-ban committed Apr 21, 2021
1 parent 9c6d64e commit 2adcea1
Show file tree
Hide file tree
Showing 7 changed files with 349 additions and 0 deletions.
26 changes: 26 additions & 0 deletions build_gcw0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh

BDAT=$(date +"%Y%m%d-%H%M%S")
echo '#define BUILDDATE "'$BDAT'"' >./gambatte_sdl/builddate.h

echo "cd libgambatte && scons"
(cd libgambatte && scons -Q target=gcw0) || exit
echo "cd gambatte_sdl && scons"
(cd gambatte_sdl && scons -Q target=gcw0)
mv gambatte_sdl/gambatte_sdl gambatte_sdl/gambatte-dms.gcw0

echo "cd gambatte_sdl && scons -c"
(cd gambatte_sdl && scons -c)
echo "cd libgambatte && scons -c"
(cd libgambatte && scons -c)
echo "rm -f *gambatte*/config.log"
rm -f *gambatte*/config.log
echo "rm -rf *gambatte*/.scon*"
rm -rf *gambatte*/.scon*
find . -type f -iname \*.o -delete
find . -type f -iname gambatte_sdl -delete

rm -f gambatte-dms-gcw0-r572u4-$BDAT.opk
mksquashfs ./dist/gcw0/default.gcw0.desktop ./gambatte_sdl/gambatte-dms.gcw0 ./dist/gcw0/gambatte_dms.png ./dist/gcw0/manual.txt gambatte-dms-gcw0-r572u4-$BDAT.opk -all-root -no-xattrs -noappend -no-exports

find . -type f -iname gambatte-dms.gcw0 -delete
31 changes: 31 additions & 0 deletions build_retrofw_ipk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/sh

BDAT=$(date +"%Y%m%d-%H%M%S")
echo '#define BUILDDATE "'$BDAT'"' >./gambatte_sdl/builddate.h

echo "cd libgambatte && scons"
(cd libgambatte && scons -Q target=retrofw) || exit
echo "cd gambatte_sdl && scons"
(cd gambatte_sdl && scons -Q target=retrofw)

rm -rf /tmp/.gambatte-ipk/ && mkdir -p /tmp/.gambatte-ipk/root/home/retrofw/emus/gambatte /tmp/.gambatte-ipk/root/home/retrofw/apps/gmenu2x/sections/emulators /tmp/.gambatte-ipk/root/home/retrofw/apps/gmenu2x/sections/emulators.systems
cp dist/manual.txt dist/gambatte_dms.png dist/gambatte_dmg.png dist/gambatte_gbc.png /tmp/.gambatte-ipk/root/home/retrofw/emus/gambatte
cp gambatte_sdl/gambatte_sdl /tmp/.gambatte-ipk/root/home/retrofw/emus/gambatte/gambatte-dms.dge
cp dist/retrofw/gambatte.lnk /tmp/.gambatte-ipk/root/home/retrofw/apps/gmenu2x/sections/emulators
cp dist/retrofw/gb.gambatte.lnk dist/retrofw/gbc.gambatte.lnk /tmp/.gambatte-ipk/root/home/retrofw/apps/gmenu2x/sections/emulators.systems
sed "s/^Version:.*/Version: `date +%Y%m%d`/" dist/retrofw/control > /tmp/.gambatte-ipk/control
tar --owner=0 --group=0 -czvf /tmp/.gambatte-ipk/control.tar.gz -C /tmp/.gambatte-ipk/ control
tar --owner=0 --group=0 -czvf /tmp/.gambatte-ipk/data.tar.gz -C /tmp/.gambatte-ipk/root/ .
echo 2.0 > /tmp/.gambatte-ipk/debian-binary
ar r gambatte-dms-retrofw-r572u4-$BDAT.ipk /tmp/.gambatte-ipk/control.tar.gz /tmp/.gambatte-ipk/data.tar.gz /tmp/.gambatte-ipk/debian-binary

echo "cd gambatte_sdl && scons -c"
(cd gambatte_sdl && scons -c)
echo "cd libgambatte && scons -c"
(cd libgambatte && scons -c)
echo "rm -f *gambatte*/config.log"
rm -f *gambatte*/config.log
echo "rm -rf *gambatte*/.scon*"
rm -rf *gambatte*/.scon*
find . -type f -iname \*.o -delete
find . -type f -iname gambatte_sdl -delete
26 changes: 26 additions & 0 deletions build_retrofw_opk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh

BDAT=$(date +"%Y%m%d-%H%M%S")
echo '#define BUILDDATE "'$BDAT'"' >./gambatte_sdl/builddate.h

echo "cd libgambatte && scons"
(cd libgambatte && scons -Q target=retrofw) || exit
echo "cd gambatte_sdl && scons"
(cd gambatte_sdl && scons -Q target=retrofw)
mv gambatte_sdl/gambatte_sdl gambatte_sdl/gambatte-dms.retrofw

echo "cd gambatte_sdl && scons -c"
(cd gambatte_sdl && scons -c)
echo "cd libgambatte && scons -c"
(cd libgambatte && scons -c)
echo "rm -f *gambatte*/config.log"
rm -f *gambatte*/config.log
echo "rm -rf *gambatte*/.scon*"
rm -rf *gambatte*/.scon*
find . -type f -iname \*.o -delete
find . -type f -iname gambatte_sdl -delete

rm -f gambatte-dms-retrofw-r572u4-$BDAT.opk
mksquashfs ./dist/gcw0/default.gcw0.desktop ./gambatte_sdl/gambatte-dms.gcw0 ./dist/gcw0/gambatte_dms.png ./dist/manual.txt gambatte-dms-gcw0-r572u4-$BDAT.opk -all-root -no-xattrs -noappend -no-exports

find . -type f -iname gambatte-dms.retrofw -delete
Binary file added dist/gambatte_dmg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dist/gambatte_dms.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dist/gambatte_gbc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
266 changes: 266 additions & 0 deletions dist/manual.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,266 @@

Gambatte-DMS emulator
------------------------------------------------

Gambatte is an accuracy-focused, open-source,
cross-platform Game Boy Color emulator written
in C++. It is based on hundreds of corner case
hardware tests, as well as previous documentation
and reverse engineering efforts.


Default Ingame Controls
------------------------------------------------

D-PAD D-PAD
B Button B Button
A Button A Button
Select Select
Start Start
R trigger / POWER Menu
L trigger Fast Forward


General Menu Controls
------------------------------------------------

D-PAD Move cursor
B Button Go back / Cancel
A Button Select / Perform action


Save States
------------------------------------------------

There are 10 savestate slots available per game.
There are options in the menu for loading and
saving states.

The default slot is always Slot 0.

The default slot will always be selected when
starting the emulator. Selected savestate slot
will not be saved on emulator exit.


Emulator Options
------------------------------------------------

Here is a list of the available config options:

- Show FPS:
Shows or hides the FPS counter.
Default is "Off".

- Scaler:
Allows to select between a range of scalers.
Default is "No Scaling".

- Mono Palette:
Allows to load external palette files for
use with monochrome GB games in DMG mode.
The "Auto" option will try to find a palette
with the same name as the ROM file, and it
will load the default palette if it fails.

- Color Filter:
Allows to load external filter files for
use with color games in GBC mode.

- DMG/GBC border:
Allows to load external PNG border images
for use in DMG/GBC mode.
The "Auto" option will try to find a border
with the same name as the ROM file, and it
will load the default border if it fails.

- System:
Allows to select the system priority when
a ROM supports both DMG and GBC modes.

- Boot Logos:
Allows to use GB/GBC BIOS files to display
the splashscreen logo when loading a game.

- Ghosting:
Enables or disables frame mixing to mimic
the DMG LCD ghosting.
Default is "DMG only".

- Controls:
Allows the user to tune the controls.

- Sound:
Allows the user to select between Mono and
Stereo sound.
Default is "Stereo".


Palette files
------------------------------------------------

Palette files are text files with the extension
".pal" and its format must be:

0xRRGGBB 0xRRGGBB 0xRRGGBB 0xRRGGBB
0xRRGGBB 0xRRGGBB 0xRRGGBB 0xRRGGBB
0xRRGGBB 0xRRGGBB 0xRRGGBB 0xRRGGBB

Where each line is a separate 4-color palette
for each sprite layer, and the color order is:
"white" "light-grey" "dark-grey" "black".


Filter files
------------------------------------------------

Filter files are text files with the extension
".fil" and its format must be:

a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4

Where each value is a decimal number, ranging
from -255 to 255 which gets applied to the
GBC colors using the following algorithm:

Rfinal = ((( R*a1 + G*a2 + B*a3 ) >> 8 ) + a4)
Gfinal = ((( R*b1 + G*b2 + B*b3 ) >> 8 ) + b4)
Bfinal = ((( R*c1 + G*c2 + B*c3 ) >> 8 ) + c4)

A general rule to avoid the resulting colors
exceeding the valid RGB range of 0-255 is that
the sum of the 4 values in a row should always
be between 0-255.


File Paths
------------------------------------------------

- Emulator Settings are saved in:
$HOME/.gambatte/settings/

- Savestates and game saves are stored in:
$HOME/.gambatte/saves/

- Palette files must be stored in:
$HOME/.gambatte/palettes/

- Filter files must be stored in:
$HOME/.gambatte/filters/

- Border images must be stored in:
$HOME/.gambatte/borders/

- BIOS files must be stored in:
$HOME/.gambatte/bios/

- Valid BIOS filenames are:
gb_bios.bin
gbc_bios.bin


Cheats
------------------------------------------------

Gambatte supports Game Genie and Game Shark
cheat codes. Each cheat system has its own menu.

Game Genie cheats:
------------------------

Game Genie codes can have 6 or 9 digits. They
are applied once each and they can only be
disabled by exiting the emulator and reloading
the ROM.

To introduce a code, go to the Game Genie menu,
highlight a code line and press A to enter edit
mode. While in edit mode you can change the
value of each digit by using the D-Pad.
When you're done, press A to save the changes
or B do discard them.

If you're introducing a 6-digit code, just leave
the last 3 digits as zeroes and your code will
be detected as a 6-digit code. If all digits are
zeroes, the code is ignored.

There are up to 20 lines for introducing several
codes at once if you need to.

To apply the cheats, press Start, and then
confirm the action by pressing A. The codes will
then be applied and the code list will be
cleared.

Cheat codes are not saved on emulator exit.

Game Shark cheats:
------------------------

Game Shark codes have 8 digits. They can be
enabled and disabled at any time.

To introduce a code, go to the Game Shark menu,
highlight a code line and press A to enter edit
mode. While in edit mode you can change the
value of each digit by using the D-Pad.
When you're done, press A to save the changes
or B do discard them.

If all digits are zeroes, the code is ignored.

There are up to 20 lines for introducing several
codes.

To enable the cheats, select the slot on the
left of the codes and press A to toggle the
desired cheat on and off. An empty slot means
the cheat code is disabled, while a check mark
means it is enabled.

Cheat codes are not saved on emulator exit.


Credits
------------------------------------------------
Gambatte emulator

Copyright (C) 2007 by Sindre Aam�s
[email protected]

This program is free software; you can
redistribute it and/or modify it under the terms
of the GNU General Public License version 2 as
published by the Free Software Foundation.

This program is distributed in the hope that it
will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License
version 2 for more details.

You should have received a copy of the GNU
General Public License version 2 along with this
program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA

------------------------------------------------

Additional features and menu rework from the
Gambatte-DMS version by Hi-Ban.
Special thanks to Surkow, Senquack and Pingflood
for helping this noob.
Source code available at:
https://github.com/bardeci/dot-matrix-simulator

------------------------------------------------

Game Boy and Game Boy Color are registered
trademarks of Nintendo of America Inc.
Gambatte is not affiliated with or endorsed by
any of the companies mentioned.

0 comments on commit 2adcea1

Please sign in to comment.