Skip to content

Commit

Permalink
Version 3.2 - as many optimizations as I could manage.
Browse files Browse the repository at this point in the history
  • Loading branch information
wavemotion-dave committed Feb 2, 2022
1 parent 2f8b6ea commit 48f625a
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 22 deletions.
Binary file modified A7800DS.nds
Binary file not shown.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION=3.1d
VERSION=3.2
TARGNAME=A7800DS

#---------------------------------------------------------------------------------
Expand Down
Binary file modified arm9/gfx/pdev_bg0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 4 additions & 5 deletions arm9/source/a7800utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -813,9 +813,9 @@ void dsInstallSoundEmuFIFO(void)

void dsMainLoop(void)
{
static int lcd_swap_counter=0;
static int special_hsc_entry=0;
static int last_keys_pressed = 999;
static u8 lcd_swap_counter=0;
static u8 special_hsc_entry=0;
static short int last_keys_pressed = 999;
char fpsbuf[32];
unsigned int keys_pressed,keys_touch=0, romSel;
int iTx,iTy;
Expand Down Expand Up @@ -863,8 +863,7 @@ void dsMainLoop(void)
TIMER0_DATA=0;
TIMER0_CR=TIMER_ENABLE|TIMER_DIV_1024;
atari_frames=0;
}

}

// Read keys
if (special_hsc_entry > 0)
Expand Down
13 changes: 3 additions & 10 deletions arm9/source/emu/Maria.itcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,24 +292,17 @@ static inline void maria_WriteLineRAM(word* buffer)
for(index = 0; index < MARIA_LINERAM_SIZE/4; index++)
{
colors.color32 = *ptr++;
if ((colors.wo.color0) == 0)
if (colors.color32 == 0)
{
*pix++ = bg32;
}
*pix++ = bg32;
}
else
{
word color, color1;
color = maria_GetColor(colors.by.color0);
color1 = maria_GetColor(colors.by.color1);
*pix++ = color | (color<<8) | (color1<<16) | (color1<<24);
}
if ((colors.wo.color1) == 0)
{
*pix++ = bg32;
}
else
{
word color, color1;
color = maria_GetColor(colors.by.color2);
color1 = maria_GetColor(colors.by.color3);
*pix++ = color | (color<<8) | (color1<<16) | (color1<<24);
Expand Down
2 changes: 1 addition & 1 deletion arm9/source/emu/Sally.itcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ byte sally_p __attribute__((section(".dtcm"))) = 0;
byte sally_s __attribute__((section(".dtcm"))) = 0;
pair sally_pc __attribute__((section(".dtcm"))) = {0};

static byte sally_opcode __attribute__((section(".dtcm")));
static pair sally_address __attribute__((section(".dtcm")));
static uint sally_cyclesX4 __attribute__((section(".dtcm")));

Expand Down Expand Up @@ -1039,6 +1038,7 @@ void sally_Execute(unsigned int cycles )

while (prosystem_cycles<cycles)
{
register byte sally_opcode;
sally_opcode = memory_ram[sally_pc.w++];
sally_cyclesX4 = SALLY_CYCLESX4[sally_opcode];

Expand Down
17 changes: 12 additions & 5 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ help you.

Features :
----------
Most things you should expect from an emulator. Speed is good. Sound is good except
for the few games that run below 60FPS.
Most things you should expect from an emulator. Speed is excellent on the DSi and
not great on the older DS-LITE. For the DS-LITE you can expect full speed only on a
handful of games: Asteroids, Asteroids Deluxe, Astro Blaster, Joust, Robotron,
Food Fight, Astro Fighter, Centipede, Galaga, Moon Cresta, Pole Position II,
Space Duel, Space Invaders. Games that are a little slow but still playable
include Meteor Shower and Time Salvo.

Add highscore.rom for 7800 High Score saving. This can be in /roms/bios, /data/bios
or in the same directory as the emulator.
Expand All @@ -37,6 +41,9 @@ Philosophy :
--------------------------------------------------------------------------------
History :
--------------------------------------------------------------------------------
V3.2 : 1-Feb-2022 by wavemotion-dave
* A 5-8% speedup across the board through a number of small optimizations in core areas.

V3.1 : 31-Jan-2022 by wavemotion-dave
* Now using more VRAM for bank swapping and partial DMA transfer to speed up large games.
* Reverted part of the sound core to improve sound quality.
Expand Down Expand Up @@ -194,12 +201,12 @@ http://www.portabledev.com
Updates by wavemotion-dave: https://github.com/wavemotion-dave/A7800DS
--------------------------------------------------------------------------------

Compatibility Table
Compatibility Table (on the faster DSi)

GAME MD5SUM HSC FPS NOTES
========================================================================================================================
Ace Of Aces 0be996d25144966d5541c9eb4919b289 NO 60 Minor graphical glitches. Very playable.
Alien Brigade 877dcc97a775ed55081864b2dbf5f1e2 NO 52 A bit slow but playable
Alien Brigade 877dcc97a775ed55081864b2dbf5f1e2 NO 56 A bit slow but playable
Arkanoid Demo 212ee2a6e66d8bb7fbf26f343cc8dc19 NO 60 Playable though paddles would be nice.
Asteroids 07342c78619ba6ffcc61c10e907e3b50 YES 60 Near perfect
Asteroids Deluxe a65f79ad4a0bbdecd59d5f7eb3623fd7 YES 60 Near perfect
Expand Down Expand Up @@ -259,7 +266,7 @@ Pole Position II 584582bb09ee8122e7fc09dc7d1ed813 NO 60 Near perfe
Popeye Demo 2.9 640c7827fe63082efbaffc13f7983744 YES 60 Near perfect.
Spire of the Ancients 19844117863cd38d4e1e4cbc867ae599 NO 60 Near perfect
Rampage ac03806cef2558fc795a7d5d8dba7bc0 NO 60 Near perfect
Realsports Baseball bfad016d6e77eaccec74c0340aded8b9 NO 50 A bit slow but playable
Realsports Baseball bfad016d6e77eaccec74c0340aded8b9 NO 53 A bit slow but playable
Robotron 66ecaafe1b82ae68ffc96267aaf7a4d7 YES 60 Near perfect
Scramble a3a85e507d6f718972b1464ce1aaf8a4 YES 60 Near perfect
Scrapyard Dog 980c35ae9625773a450aa7ef51751c04 NO 60 Near perfect
Expand Down

0 comments on commit 48f625a

Please sign in to comment.